首页 > 数据库 > MySQL > 正文

MySQL索引知识点有什么

2024-07-24 12:34:15
字体:
来源:转载
供稿:网友
  索引是什么
  官方介绍索引是帮助MySQL高效获取数据的数据结构。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。
  一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往是存储在磁盘上的文件中的(可能存储在单独的索引文件中,也可能和数据一起存储在数据文件中)。
  我们通常所说的索引,包括聚集索引、覆盖索引、组合索引、前缀索引、唯一索引等,没有特别说明,默认都是使用B+树结构组织(多路搜索树,并不一定是二叉的)的索引。
  索引的优势和劣势
  优势:
 
  可以提高数据检索的效率,降低数据库的IO成本,类似于书的目录。
  通过索引列对数据进行排序,降低数据排序的成本,降低了CPU的消耗。
  被索引的列会自动进行排序,包括【单列索引】和【组合索引】,只是组合索引的排序要复杂一些。
  如果按照索引列的顺序进行排序,对应order by语句来说,效率就会提高很多。
  劣势:
 
  索引会占据磁盘空间
  索引虽然会提高查询效率,但是会降低更新表的效率。比如每次对表进行增删改操作,MySQL不仅要保存数据,还有保存或者更新对应的索引文件。
  索引类型
  主键索引
  索引列中的值必须是唯一的,不允许有空值。
 
  普通索引
  MySQL中基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和空值。
 
  唯一索引
  索引列中的值必须是唯一的,但是允许为空值。
 
  全文索引
  只能在文本类型CHAR,VARCHAR,TEXT类型字段上创建全文索引。字段长度比较大时,如果创建普通索引,在进行like模糊查询时效率比较低,这时可以创建全文索引。 MyISAM和InnoDB中都可以使用全文索引。
 
  显然这种并不适合作为经常需要查找和范围查找的数据库索引使用。

(编辑:武林网)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表