加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

一通骚操作,我把SQL执行效率提高了10000000倍!

发布时间:2019-06-23 04:44:16 所属栏目:编程 来源:风过无痕
导读:场景 我用的数据库是mysql5.6,下面简朴的先容了局景 课程表: createtableCourse( c_idintPRIMARYKEY, namevarchar(10) ) 数据100条 门生表: createtableStudent( idintPRIMARYKEY, namevarchar(10) ) 数据70000条 门生后果表SC CREATEtableSC( sc_idintP

就是查询的列都成立了索引,这样在获取功效集的时辰不消再去磁盘获取其余列的数据,直接返回索引数据即可,如:

  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调优的总结,往后偶然刻再深入研究:

1.列范例只管界说成数值范例,且长度尽也许短,如主键和外键,范例字段等等

2.成立单列索引

  • 按照必要成立多列连系索引
  • 当单个列过滤之后尚有很大都据,那么索引的服从将会较量低,即列的区分度较低

3.假如在多个列上成立索引,那么多个列的区分度就大多了,将会有明显的服从进步。

4.按照营业场景成立包围索引只查询营业必要的字段,假如这些字段被索引包围,将极大的进步查询服从

5.多表毗连的字段上必要成立索引,这样可以极大进步表毗连的服从

6.where前提字段上必要成立索引

7.排序字段上必要成立索引

8.分组字段上必要成立索引

9.Where前提上不要行使运算函数,以免索引失效

(编辑:湖南网)

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

热点阅读