Mysql优化
来源:互联网 发布:windows安装 nvidia 编辑:程序博客网 时间:2024/06/07 03:57
一、索引相关
1.在一个大表上快速创建索引
可以考虑先导出数据,删除然后新建表,最后再将以前的数据导入,这样比在原有大数据量表上直接建索引快速一些
2.复杂查询查看sql执行计划(explain)
3.尽量少使用not in,not exist,not null这样的查询
4.对于多列索引,尽可能避免范围查询(因为范围查询字段后面的字段无法使用索引)
如idx_user_club(user_id,club_id),如果查询中有user_id的范围查询,则后面的club_id不会用到索引
因此对于这样的查询要麽避免范围查询,要麽将范围查询通过其它自定义的维护字段转换为等值查询
Explain时各个列含义
Type列
"index" 表示Mysql使用索引扫描来排序
Extra列
“Using Where” 表示Mysql服务器将存储引擎返回行以后再应用过滤条件
“Using index” 表示Mysql查询时使用到了覆盖索引
选择索引和编写利用索引的查询时,应注意:
单行访问是很慢的;
按顺序访问范围数据是很快的;
索引覆盖查询是很快的。
总结来说就是,编写查询语句时应该尽可能选择合适的索引以避免单行查找,尽可能地使用数据原生顺序从而避免额外的排序操作,
并尽可能的使用覆盖索引
阅读全文
0 0
- 优化Mysql
- mysql优化
- mysql优化
- mysql优化
- MySQL 优化
- MySQL优化
- mysql 优化
- mysql 优化
- Mysql优化
- 优化Mysql
- 优化Mysql
- 优化MYSQL
- mysql 优化
- mysql 优化
- mysql优化
- mysql优化
- MySql优化
- MySQL优化
- 世界线 【NOIP2017提高A组模拟8.22】
- 织梦dedecms多选checkbox字段值独立输出样式调用方法
- 16-反转链表
- Cordova备忘录
- JVM_内存区域
- Mysql优化
- JVM垃圾回收算法与内存管理策略
- windows下注册tomcat服务以及设置jvm参数
- 研究生院和研究生学院的区别,差别吓死你!!!!
- 2017 Multi-University Training Contest
- JavaScript实现-计算一个整数的阶乘-Factorialize a Number
- Java 集合深入理解(3):Collection
- bootstrap table表头和内容无法对齐
- Jquery之Ajax实例_用户名检查