MySQL查询优化之概述
2015-03-05 21:22
239 查看
1、加快select语句执行速度的最有效的办法是:在where条件中被使用的列上,建立必要的索引,尤其是当列被用作外键关系时、多个表的join查询时
可以使用explain查询SQL优化器使用了哪些索引。
当然,索引建立过度,在只能小幅度的提升性能的同时,会浪费大量磁盘空间,得不偿失。
通常情况下要针对那些被执行次数非常多的,或者速度特别慢的那些SQL进行调优。
2、将查询SQL切割成各个独立的部分,比如函数调用,对这些独立的部分进行调优,可以提高性能
3、尽量避免全表扫描,尤其是当表的数据量特别大的时候
4、经常使用analyze table语句,以更新mysql对表的统计信息,利于MYSQL优化器做出正确的执行计划
5、多了解一些调优技术,以及存储引擎上与性能相关的一些参数的作用
6、innodb的只读事务,可以避免一些不必要的开销,从而提供性能
7、避免为了提高性能而将SQL语句改写成难以读懂的形式,尤其是当这些改写,查询优化器会自动实现的时候
8、当一些基本的规则仍然不够调优你的SQL时,请使用explain来分析执行计划,调整索引、where条件或者join等等
9、调整MYSQL用来做缓冲的内存大小,比如innodb buffer pool
10、即使因为大的内存能保证SQL执行的比较快,也要尽可能的调优你的SQL,这样能够在并发规模上去的时候,依然使你的应用程序保持健壮和稳定
11、处理好锁等待(死锁)的问题,有些SQL本身可以飞快的执行,但是由于资源竞争的问题,其他会话可能一直锁住资源不释放,导致该飞起来的SQL飞不了
可以使用explain查询SQL优化器使用了哪些索引。
当然,索引建立过度,在只能小幅度的提升性能的同时,会浪费大量磁盘空间,得不偿失。
通常情况下要针对那些被执行次数非常多的,或者速度特别慢的那些SQL进行调优。
2、将查询SQL切割成各个独立的部分,比如函数调用,对这些独立的部分进行调优,可以提高性能
3、尽量避免全表扫描,尤其是当表的数据量特别大的时候
4、经常使用analyze table语句,以更新mysql对表的统计信息,利于MYSQL优化器做出正确的执行计划
5、多了解一些调优技术,以及存储引擎上与性能相关的一些参数的作用
6、innodb的只读事务,可以避免一些不必要的开销,从而提供性能
7、避免为了提高性能而将SQL语句改写成难以读懂的形式,尤其是当这些改写,查询优化器会自动实现的时候
8、当一些基本的规则仍然不够调优你的SQL时,请使用explain来分析执行计划,调整索引、where条件或者join等等
9、调整MYSQL用来做缓冲的内存大小,比如innodb buffer pool
10、即使因为大的内存能保证SQL执行的比较快,也要尽可能的调优你的SQL,这样能够在并发规模上去的时候,依然使你的应用程序保持健壮和稳定
11、处理好锁等待(死锁)的问题,有些SQL本身可以飞快的执行,但是由于资源竞争的问题,其他会话可能一直锁住资源不释放,导致该飞起来的SQL飞不了
相关文章推荐
- mysql优化概述(范式.索引.定位慢查询)
- MySQL 索引原理概述及慢查询优化实战
- MySQL查询优化系列讲座之数据类型与效率
- MySQL查询优化系列讲座之调度和锁定
- 优化 MySQL 查询的 Limit 参数
- MySQL查询的性能优化
- MySQL查询优化技术系列讲座之使用索引
- MySQL查询优化技术讲座
- MySQL查询优化系列讲座之查询优化器
- MySQL查询优化系列讲座之查询优化器
- MySQL查询优化讲座之管理员的优化措施
- MySQL查询优化程序
- MySQL查询优化技术讲座
- 优化 MySQL 查询的 Limit 参数
- 使用连接(JOIN)来代替子查询(Sub-Queries) mysql优化系列记录
- MySQL查询优化系列讲座之调度和锁定 选择自 arcow 的 Blog
- mysql 常用命令和查询优化
- MySQL查询优化--数据类型与效率
- MySQL查询优化技术系列讲座之使用索引
- MySQL查询优化讲座之管理员的优化措施