5.7.mysql其他几种优化注意点

只取出需要的列,不要用select *

  • 如果取出的列过多,则传输给客户端的数据量必然很大,浪费带宽

  • 若在排序的时候输出过多的列,则会浪费内存(Using filesort )

  • 若在排序的时候输出过多的列,还有可能改变执行计划

仅使用最有效的过滤条件

  • Where字句中条件越多越好吗?

  • 若在多种条件下都使用了索引,那如何选择?

  • 最终选择方案:key_len的长度决定使用哪个条件

尽可能在索引中完成排序

  • order by字句中的字段加索引(扫描索引即可,内存中完成,逻辑io )

  • 若不加索引的话会可能会启用一个临时文件辅助排序(落盘,物理io )

Last updated

Was this helpful?