目录 start

  1. MySQL进阶
    1. 事务隔离级别
    2. 性能调优
      1. 查看状态变量
    3. 存储引擎
      1. InnoDB
  2. Tips
    1. SQL 片段

目录 end|2019-10-19 17:04|


MySQL进阶

参考博客: shell 下执行mysql 命令

参考博客: 轻松理解MYSQL MVCC 实现机制

事务隔离级别

参考博客: MySQL的四种事务隔离级别

事务隔离级别 脏读 不可重复读 幻读
读未提交(read-uncommitted)
不可重复读(read-committed) \
可重复读(repeatable-read) \ \
串行化(serializable) \ \ \

性能调优

Doc: Optimizing Queries with EXPLAIN

MySQL下INNODB引擎的SELECT COUNT(*)性能优化及思考

set max_execution_time=3000; (5.7.8 新增) 设置SQL执行最大时间, 超时报错, 单位 ms

5.6及以上版本时间类型效率 int > datetime > timestamp

limit 做分页时 记录上次分页最后一条记录的id使用上where进行过滤 提高性能, 前提id是int自增的

查看状态变量

SHOW VARIABLES

  • 查看所有连接 show processlist;
  • 查看最大连接数 show variables like "max_conn%";
    • 设置最大连接数 set global max_connections=5000;

存储引擎

InnoDB

行溢出


Tips

  • 将需要执行的SQL写入文件 并将结果输出到文件 mysql -u root -h 192.168.10.201 -p123 < query.sql > result.log

SQL 片段

  1. 删除库下所有表 select concat('drop table ',table_name,';') from information_schema.TABLES where table_schema='DATABASE_NAME';