400-969-7660
首页 > IT问答库 > Web全栈开发 > 如何专业系统学Web前端?MySQL索引是怎么回事?

如何专业系统学Web前端?MySQL索引是怎么回事?

2020-04-29 21:47:07 发布
  如何专业系统学Web前端?MySQL索引是怎么回事?索引是数据库系统中管理一个排序的数据结构,以协助查询更新数据库表中数据。索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。下面就给大家简单梳理一下MySQL索引相关的知识点。
 

 
  索引是什么?
 
  在MySQL中,索引(index)也叫做“键(key)”,它是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能非常关键,索引优化是对查询性能优化最有效的手段。
 
  索引的工作原理
 
  在MySQL中,存储引擎用类似的方法使用索引,其先在索引中查找对应的值,然后根据匹配的索引记录找到对应的数据行,最后将数据结果集返回给客户端。
 
  索引的作用
 
  1、索引提高检索速度。
 
  索引表是一种数据结构,存储着字段的值以及字段所对应记录的位置。例如,如果在顾客表的顾客姓名字段上设置了索引,DBMS就会创建一张索引表,表中有两个字段,分别存储着顾客姓名和位置。与原来的顾客表相比,索引表中的字段数更少,所以可以更快地进行数据的检索和排序。当查询数据时,DBMS先在索引表中进行数据的检索和排序,然后再根据位置信息从原来的数据表中把完整的记录取出来。索引所起的就是“目录”的作用。与图书的目录一样,数据库的索引也是一种能够高效地查找目标数据的机制。
 
  2、索引降低增删改的速度。
 
  由于MySQL在存储索引的时候,底层用的数据结构是B+树,B+树是一颗平衡树,如果我们对这颗树增删改的话,那肯定会破坏它的原有结构。要维持平衡树,就必须做额外的工作。正因为这些额外的工作开销,导致索引会降低增删改的速度。
 
  创建好的索引需要注意什么?
 
  1、最左前缀匹配原则。这是非常非常重要的原则,MySQL会一直向右匹配直到遇到范围查询(>,<,BETWEEN,LIKE)就停止匹配。
 
  2、尽量选择区分度高的列作为索引,区分度的公式是 COUNT(DISTINCT col)/COUNT(*)。表示字段不重复的比率,比率越大我们扫描的记录数就越少。
 
  3、索引列不能参与计算,尽量保持列“干净”。比如FROM_UNIXTIME(create_time) = '2016-06-06'就不能使用索引,原因很简单,B+树中存储的都是数据表中的字段值,但是进行检索时,需要把所有元素都应用函数才能比较,显然这样的代价太大。所以语句要写成: create_time = UNIX_TIMESTAMP('2016-06-06')。
 
  4、尽可能的扩展索引,不要新建立索引。比如表中已经有了a的索引,现在要加(a,b)的索引,那么只需要修改原来的索引即可。
 
  5、单个多列组合索引和多个单列索引的检索查询效果不同,因为在执行SQL时,MySQL只能使用一个索引,会从多个单列索引中选择一个限制最为严格的索引。
 
  想了解更多MySQL索引相关知识点,快速进入Web前端开发行业,你可以专业系统的前端知识,让自己理论与实战兼备,更具竞争优势!
上一篇 : 到底大前端是什么?一般大前端技术有哪些?
下一篇 : 前端人员要掌握什么知识?JavaScript怎么回事?

在线预约 立享免费试学资格

姓      名 :
联系方式 :
试学课程 :