数据库优化
MySQL优化
- 在表的关联查询中,永远小表驱动大表(小表用远在外层,大表在里层,这样连接时浪费的资源则会大大降低)
- 使用
where
进行查询时,不能使用内置函数,否则索引失效 - 单表查询时,对同一个字段条件尽量不使用
or
进行查询,索引有可能失效,推荐使用union
进行查询 like
使用%
会导致索引失效- 组合索引一定要遵循
从左到右
原则,否则索引会失效;比如:SELECT * FROM table WHERE name = '张三' AND age = 18
,那么该组合索引必须是name,age
形式 - 索引不宜过多,根据实际情况去选定,一般不超过10个
- 每个表都必须有主键,以达到加快查询效率的目的
- 分表,可根据业务字段尾数中的个位或十位或百位(以此类推)做表名达到分表的目的
- 分库,可根据业务字段尾数中的个位或十位或百位(以此类推)做库名达到分库的目的
- 表分区,类似于硬盘分区,可以将某个时间段的数据放在分区里,加快查询速度,可以配合 分表 + 表分区 结合使用;
神器EXPLAIN
语句
EXPLAIN
显示了 MySQL 如何使用索引来处理SELECT
语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。- 后面的内容太多了,我哭了,不会啊