课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
性能优化无论是软件开发还是数据库的运行维护都是非常重要的组成部分,今天我们就通过案例分析来了解一下,SQL数据库优化的主要方法有哪些。
描述
sql的优化主要是围绕着在查询语句的时候尽量使用索引避免全表扫描。
使用索引
对查询进行优化,应尽量避免全表扫描,先应考虑在 where 及 order by 涉及的列上建立索引。
避免判断null值
应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描。
避免不等值判断
应尽量避免在 where 子句中使用!=或<>操作符,否则引擎将放弃使用索引而进行全表扫描。
避免使用or逻辑
应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描。
使用短索引:
例如,如果有一个CHAR(255)的列,如果在前10个或20个字符内,多数值是惟一的,那么就不要对整个列进行索引,短索引不仅可以提高查询速度而且可以节省磁盘空间和I/O操作。
尽量不要包含多个列的排序,尽量使用默认排序
因为:MySQL查询只使用一个索引,因此如果where子句中已经使用了索引的话,那么order by中的列是不会使用索引的
不要在列上进行运算
如果在列上进行计算将导致每个行都会进行运算,这将导致索引失效而进行全表扫描。
左前缀法则
在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使用,并且应尽可能的让字段顺序与索引顺序相一致。
表格字段类型选择
尽量使用数字型字段,若只含数值信息的字段尽量不要设计为字符型,这会降低查询和连接的性能,并会增加存储开销。这是因为引擎在处理查询和连接时会逐个比较字符串中每一个字符,而对于数字型而言只需要比较一次就够了。
尽可能的使用 varchar 代替 char ,因为先可变长度字段存储空间小,可以节省存储空间,其次对于查询来说,在一个相对较小的字段内搜索效率显然要高些。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!