8.2.1 Optimizing SELECT Statements[译]
8.2.1 Optimizing SELECT Statements[译]
不是simaguo 发表于3年前
8.2.1 Optimizing SELECT Statements[译]
  • 发表于 3年前
  • 阅读 15
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

摘要: 针对select语句, 及CREATE TABLE...AS SELECT, INSERT INTO...SELECT, 及 WHERE clauses in DELETE 语句.

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

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

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

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

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

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

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

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

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

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



共有 人打赏支持
粉丝 8
博文 26
码字总数 15538
×
不是simaguo
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: