第十三章《优化》
查询优化: 1.show status like ‘slow_queries’;
2.分析查询语句: explain/desc select 语句
mysql> explain select * from user1; ±—±------------±------±-----±--------------±-----±--------±-----±-----±------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | ±—±------------±------±-----±--------------±-----±--------±-----±-----±------+ | 1 | SIMPLE | user1 | ALL | NULL | NULL | NULL | NULL | 3 | | ±—±------------±------±-----±--------------±-----±--------±-----±-----±------+ 1 row in set (0.00 sec)
id select 语句的id号 select_type:查询语句的类型 simple:简单的查询语句 primary:主查询,最外层查询 union:连接查询 subquery:子查询
type:表示查询读取数据的方式; const:表示只有一行数据匹配 system:该表时仅有一行数据的系统表; eq_ref:使用到的索引时unique或者primary,子句使用了‘=’来对比索引列; ref:使用了索引,但是索引不是unique或者primary key; ref_or_null:mysql可以通过select语句来查询索引列包含null值的行 index_merge:使用到组合索引 range:范围查询的意思,只检索给定范围的行,子句当中‘<=’,’>=’.between ALL:整个表进行遍历(没有使用索引)
特殊的查询语句: 1.使用like关键字的查询语句 like后面匹配字符串的第一个字符串是‘%’,即使查询的是索引,也不会使用索引; 2.子语句中有or关键字,只有or连接的两个字段都是索引字段才能使用索引; 3.select字段如果属于组合索引中的字段,我们必须使用组合索引中的最左边的索引字段,否则不适用索引;
库表结构的优化: 1.字段的数据类型 2.数据类型后面数据宽度 3.选择合适的存储引擎 4.分库分表 5.插入数据: (1)alter table 表名 disable keys; 禁用索引 (2)禁用唯一性检查: set unique_checks=0; (3)使用批量插入;
6.分析表 analyze table tablename
op:执行的操作是什么 Msg_type: 信息级别:status 正常状态 ,info信息,note注意,warning警告,error报错; Msg_text:显示信息
检查表: check table 表名
优化表:消除执行完删除或者更新命令后造成空间浪费 optimize table tablename
性能参数的优化: cpu、内存、I/O优化等; max_connections:set global max_connections=500M
相关文章
- 使用 Preload&Prefetch 优化前端页面的资源加载「建议收藏」
- 实战:MySQL 性能优化 超实用视频教程(mysql优化视频教程)
- 优化Mysql优化:轻松搞定百万级数据查询(mysql百万级数据查询)
- Nginx高性能Web服务器:Nginx的基本配置与优化(第三章)
- 时间设置MySQL优化:优雅管理系统日期时间(mysql系统日期)
- Linux存储设备管理:优化存储空间的技巧(linux存储设备)
- 如何优化MSSQL数据库并收缩数据库大小(mssql收缩)
- 优化Oracle系统利用共享内存进行分配(oracle共享内存分配)
- 分页技术优化Redis性能(分页 redis)
- 优化使用Oracle从中文起步(oracle一般用中文)
- 指标优化Oracle作业性能的指标追踪(oracle job性能)
- 浅谈PL/SQL批处理语句:BULKCOLLECT与FORALL对优化做出的贡献
- Codeigniter操作数据库表的优化写法总结