SQL本身优化
反范式设计优化
物理设计优化(字段类型、长度设计、存储引擎选择)
索引优化
SQL本身优化
关联子查询改为关联查询
范式设计让表更少
反范式设计允许让表有少量的冗余,空间换时间
统计表 查询 不做修改和更新
业务表
当一个列可以选择多种类型数据时候
优先考虑数字类型
其次是日期 时间类型
最后是字符类型
因为占用空间小
但是用联合索引的时候 会出现查询速度变慢了? 为什么?
看执行计划!
表的读取顺序
数据读取操作的操作类型
哪些索引可以使用
哪些索引被实际使用
表之间的引用
每张表有多少行被优化器查询
mysql解析器顺序和sql手写顺序不一致
语法
Explain + SQL语句
执行计划 key_len
判断索引的字节数是否等于key_len来判断数据库有没有合理的走索引
useing index useing filesort 代表会慢
组合索引 最佳左前缀原则
key(name,age,sex) 火车没有火车头 就开不起来了 大头大哥不能断 中间不能断
范围查询放最后
覆盖索引
select 列 全部是 索引列 就是覆盖索引 从索引表查 不从数据表查
执行计划每一列怎么玩的