搜索
您的当前位置:首页正文

Mysql 查询优化的思路

来源:二三娱乐

概述

SQL查询慢的两个原因:搜索慢 、查询的数据太多(IO开销大)

  1. 查的数据太多:
  • SELECT 不要跟 * 号,可以避免 * 的转义
  • 只查询自己需要的字段,降低IO开销
  • 分页分批查询
  1. 搜索慢的解决思路:
  • 是否正确的使用好的索引(一张表的一次查询只能使用一个索引)
  • SQL是否可以优化,比如大表的limit查询、In查询不如用范围查询来的好,between and
  • 根据业务场景 分区、分表、分库
  • 数据库参数调优,比如InnoDB的buffersize,官方建议75%的内存用来缓存
  • 存储引擎的选择,多读少写的场景下可以考虑用Myisam,一级索引快。如果都是精确查询的话,可以考虑用Memory引擎。
  • 查询结果缓存:Mysql自带的缓存功能,或者依赖第三方做缓存(Ehcache、Redis等)
  • 业务上是否可以妥协,不要对过多的字段做分组、排序
  1. 其它辅助
  • explain 查看执行计划
  • 开启Mysql的慢查询日志功能,查看哪些SQL慢了
  • 或者使用Druid的监控功能
Top