合理选择表字段类型类型
int
类型优先于varchar
类型 优先于text
类型varchar
(变长字符串)类型优先于char
(不可变长)类型
表分割:对于频繁使用的且数据量增长很快的表进行表的分割
水平分割:将表进行水平条目方向的分割,根据数据的活跃度(被使用程度)将表分为主表、次表等等。主表为活跃度较高的数据。因此分割前要对系统数据活跃度进行调查。将一张大表分割为主表、次表,可缩小、精确查询范围,从而达到优化查询的目的。
垂直分割:从字段方向对表进行分割,对表进行瘦身,删除冗余字段或不常用字段,将这些字段放到其他表中,当需要时连接查询得到需要的数据。
2. sql语句优化
创建并正确使用索引,避免查询放弃使用索引,进行全表扫描
避免在索引字段上使用 is null 和 is not null ――》字段尽量不要允许为null 可以用0或其他特殊字符代替
避免在索引字段上使用 != 、 <> 和not in
避免在where子句中对一个有索引的字段和一个没有索引的字段使用or连接
避免使用前导模糊查询 如 like ’%ab%‘
避免对索引字段进行表达式或者函数操作
避免对索引字段使用变量
组合索引的顺序也会影响到索引的使用情况,从而影响到查询效率
尽量缩小精确查询范围,避免全表扫描
减少返回的数据量(分页),避免返回大量无用数据,从而减少网络传输和磁盘访问
优先考虑使用连接查询(连接查询优先于嵌套查询)
使用存储过程,但是不便于维护
3. 数据库慢查询
explain
关键字输出sql语句执行的情况,可以查看到哪些sql语句是全表搜索,或者使用了什么索引。
4. 经验之谈
断点运行可以看出哪段代码运行过慢(很慢的情况下)。从而定位到查询效率低的问题。
参考学习网址 : https://blog.csdn.net/zhushuai1221/article/details/51740846