出国留学网

目录

2018年全国计算机二级MySQL章节知识点:Mysql索引的三个原则

【 liuxue86.com - 计算机二级 】

  三,实例

  1,单表数据太少,索引反而会影响速度

  mysql> call i_test(10,'test_t'); //向test_t表插入10条件

  Query OK, 1 row affected (0.02 sec)

  mysql> select num from test_t where num!=0;

  mysql> explain select num from test_t where num!=0\G;

  *************************** 1. row ***************************

  id: 1

  select_type: SIMPLE

  table: test_t

  type: ALL

  possible_keys: NULL

  key: NULL

  key_len: NULL

  ref: NULL

  rows: 10

  Extra: Using where

  1 row in set (0.00 sec)

  ERROR:

  No query specified

  mysql> create index num_2 on test_t (num);

  Query OK, 10 rows affected (0.19 sec)

  Records: 10 Duplicates: 0 Warnings: 0

  mysql> select num from test_t where num!=0;

  mysql> explain select num from test_t where num!=0\G;

  *************************** 1. row ***************************

  id: 1

  select_type: SIMPLE

  table: test_t

  type: index

  possible_keys: num_2

  key: num_2

  key_len: 4

  ref: NULL

  rows: 10

  Extra: Using where; Using index

  1 row in set (0.00 sec)

  ERROR:

  No query specified

  mysql> show profiles;

  +----------+------------+---------------------------------------------+

  | Query_ID | Duration | Query |

  +----------+------------+---------------------------------------------+

  | 1 | 0.00286325 | call i_test(10,'test_t') | //插入十条数据

  | 2 | 0.00026350 | select num from test_t where num!=0 |

  | 3 | 0.00022250 | explain select num from test_t where num!=0 |

  | 4 | 0.18385400 | create index num_2 on test_t (num) | //创建索引

  | 5 | 0.00127525 | select num from test_t where num!=0 | //使用索引后,差不多是没有使用索引的0.2倍

  | 6 | 0.00024375 | explain select num from test_t where num!=0 |

  +----------+------------+---------------------------------------------+

  6 rows in set (0.00 sec)

  解释:

  id:表示sql执行的顺序

  select_type:SIMPLE,PRIMARY,UNION,DEPENDENT UNION,UNION RESULT,SUBQUERY,DEPENDENT SUBQUERY,DERIVED不同的查询语句会有不同的select_type

  table:表示查找的表名

  type:表示使用索引类型,或者有无使用索引.效率从高到低const、eq_reg、ref、range、index和ALL,其实这个根你sql的写法有直接关系,例如:能用主键就用主键,where后面的条件加上索引,如果是唯一加上唯一索引等

  possible_keys:可能存在的索引

  key:使用索引

  key_len:使用索引的长度

  ref:使用哪个列或常数与key一起从表中选择行,一般在多表联合查询时会有。

  rows:查找出的行数

  Extra:额外说明

  前段时间写过一篇博文mysqldistinct和group by谁更好,里面有朋友留言,说测试结果根我当时做的测试结果不一样,当时我打比方解释了一下,今天有时间,以例子的形势,更直观的表达出索引的工作原理。

  2,where后的条件,order by ,group by 等这样过滤时,后面的字段最好加上索引。根据实际情况,选择PRIMARY KEY、UNIQUE、INDEX等索引,但是不是越多越好,要适度。

  3,联合查询,子查询等多表操作时关连字段要加索引

  mysql> call i_test(10,'test_test'); //向test_test表插入10条数据

  Query OK, 1 row affected (0.02 sec)

  mysql> explain select a.num as num1,b.num as num2 from test_t as a left join tes

  t_test as b on a.num=b.num\G;

  *************************** 1. row ***************************

  id: 1

  select_type: SIMPLE

  table: a

  type: index

  possible_keys: NULL

  key: num_2

  key_len: 4

  ref: NULL

  rows: 10

  Extra: Using index

  *************************** 2. row ***************************

  id: 1

  select_type: SIMPLE

  table: b

  type: ref

  possible_keys: num_1

  key: num_1

  key_len: 4

  ref: bak_test.a.num //bak_test是数据库名,a.num是test_t的一个字段

  rows: 1080

  Extra: Using index

  2 rows in set (0.01 sec)

  ERROR:

  No query specified

  数据量特别大的时候,最好不要用联合查询,即使你做了索引。

  推荐阅读:

  2018年全国计算机二级MySQL章节知识点:Mysql的优化方法

  2018年计算机二级考试大纲汇总

  2018年计算机二级考试WEB考点汇总

  2018年计算机二级考试Access习题答案汇总

  2018年计算机二级考试MSOffice习题答案汇总

  出国留学网计算机等级考试 栏目推荐

  2018年计算机等级考试计划

  2018年计算机等级考试时间

  计算机等级考试动态

  计算机等级考试报名时间

  计算机等级考试时间

  计算机等级考试准考证打印时间

  计算机等级考试成绩查询时间

  计算机等级考试试题及答案

  想了解更多计算机二级网的资讯,请访问: 计算机二级

本文来源:https://jsj.liuxue86.com/a/3625211.html
延伸阅读
    想必要考试的考生,对快捷键还是有敏感的,快捷键不仅使你考试能做题快一些,在平时设计网站时也是有很大的帮助的,在这里预祝即将考试的考生
2019-01-02
漂亮的Flash动画人人喜欢,不过制作起来的确有一些技术难度。你知道吗,Dreamweaver作为一个网页制作工具,还可以创建好玩的Flash相册。小编整理了一些Flash相册的资
2019-01-02
    滚动字幕会让很多人感到兴奋,特别是第一次使用滚动字幕时,会爱不释手。现在做一个详细的方案,让你更全面地了解一下。小编整理了一些滚动字
2019-01-02
    我们都想知道在学习计算机语言中的C语言,最重要的就是字符串了,小编整理了关于C语言的一些知识点,对你的计算机考试会有帮助的,想了解更
2019-01-02
你准备好计算机等级考试了么?小编为大家提供“2018年12月计算机二级Java冲刺题及答案3”供广大考生参考,希望帮到您!更多计算机等级考试的资讯请关注我们网站的更新哦!2018年
2018-11-28
本网站计算机考试栏目小编为考生们整理了“2018年12月计算机二级Java冲刺题及答案2”,希望有所帮助,更多计算机等级考试信息请关注本网站的及时更新哦。祝同学们金榜题名!2018
2018-11-28
计算机等级考试栏目小编精心为您收集整理了《2018年12月计算机二级Java冲刺题及答案1》,希望给您带来帮助!更多精彩内容尽在本站,请持续关注。祝您考试顺利哦!2018年12月计
2018-11-28
三层模式是体系结构模式,MVC是设计模式,考生们应该常见吧,小编为你整理了一些关于JavaBean的资料,供程序员参考,希望能对你有所帮助!计算机二级考试-Web前端程序设计(Ja
2019-01-02