8.2.1 Optimizing SELECT Statements[译]

1、在where子句中设置索引加快查询,及构造一个小的索引集合避免浪费磁盘空间。

2、减小表扫描数量,特别是大表。

3、保存表统计信息,以便优化器来构造一个有效的执行计划。

4、学习调优技巧,索引技巧,及配置参数,特别是每个表的存储引擎配置参数。

5、隔离和优化查询的每个部分,例如优化一个函数的调用所花时间,因为这样一个函数在一次查询中可能会调用数百万次。

6、避免弄一些很难理解的查询转换,特别是优化器自动做了同样的转换。

7、如果一个性能问题不能简单解决,可以通过explain这个性能问题的核心查询语句来了解内部查询细节,通过调节索引,where子句、join子句等来优化。

8、调节mysql缓存的内存大小和属性,有效利用 InnoDB buffer pool, MyISAM key cache,及mysql查询缓存将会使得重复查询更快,因为第一次以后将会从内存中取得查询结果。

9、即使因为内存缓存使得查询速度很快,你仍然要优化,使内存缓存的大小尽量减少,让应用程序更具有可伸缩性,可伸缩性意味着在性能没有大幅下降的情况下,你的应用可以处理更多的并发,更大的请求等

10、处理死锁问题,会话在同一时间访问表时,查询的速度可能会受到影响。



转载于:https://my.oschina.net/simaguo/blog/410350

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值