加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

一次非常有趣的SQL优化经历

发布时间:2019-04-12 02:43:45 所属栏目:MySql教程 来源:风过无痕
导读:副标题#e# 场景 我用的数据库是mysql5.6,下面简单的介绍下场景 课程表: createtableCourse( c_idintPRIMARYKEY, namevarchar(10) ) 数据100条 学生表: createtableStudent( idintPRIMARYKEY, namevarchar(10) ) 数据70000条 学生成绩表SC: CREATEtableSC

执行一下语句:

  1. select * from user_test where sex = 2  
  2. select * from user_test where sex = 2 and type = 2  
  3. select * from user_test where sex = 2 and age = 10 

索引覆盖

就是查询的列都建立了索引,这样在获取结果集的时候不用再去磁盘获取其它列的数据,直接返回索引数据即可

如:

  1. select sex,type,age from user_test where sex = 2 and type = 2 and age = 10 

执行时间:0.003s

要比取所有字段快的多

排序

  1. select * from user_test where sex = 2 and type = 2 ORDER BY user_name 

时间:0.139s

在排序字段上建立索引会提高排序的效率

  1. create index user_name_index on user_test(user_name) 

最后附上一些sql调优的总结,以后有时间再深入研究

  •  列类型尽量定义成数值类型,且长度尽可能短,如主键和外键,类型字段等等
  •  建立单列索引
  •  根据需要建立多列联合索引

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读