美文网首页
mysql索引,添加索引的原则

mysql索引,添加索引的原则

作者: 水欣 | 来源:发表于2018-02-26 21:51 被阅读0次

索引用于快速找出在某个列中有一特定值的行。不使用索引,mysql必须从第1条记录开始然后读完整个表直到找出相关的行,还需要考虑每次读入数据页的IO开销。而如果采取索引,则可以根据索引执行的页以及记录在页中的位置,迅速地读取目标页进而获取目标记录。
大多数情况下都(默认)采用B树来构建索引。只是空间列类型的索引使用R-树,并且MEMORY表还支持hash索引。B树是平衡多叉树,每个节点存放多少个值取决于值所占的空间,这与每一张数据页存放多少条记录与记录信息量有关同理。节点中的值是以非降序进行排列的,节点中的值总是小于等于指向它的节点中的值。
MySQL使用B树构造索引的情况下,是由叶子指向具体的页和记录的。并且一个叶子有一个指针指向下一个叶子。

使用索引需要注意:

  1. 只对WHERE和ORDER BY需要查询的字段设置索引,避免无意义的硬盘开销;
  2. 组合索引支持前缀索引;
  3. 更新表的时候,如增删记录,mysql会自动更新索引,保持树的平衡;因此更多的索引意味着更多的维护成本。

索引的字段类型问题

  1. text类型,也可建索引(需指定长度);
  2. myisam存储引擎索引键长度综合不能超过1000字节
  3. 用来筛选的值尽量保持和索引列同样的数据类型

索引分四类

  1. index --- 普通的索引,数据可以重复
  2. fulltext --- 全文索引,用来对大表的文本域(char,varchar,text)进行索引。语法和普通索引一样
  3. unique --- 唯一索引,要求所有记录都唯一
  4. primary key --- 主键索引,也就是在唯一索引的基础上相应的列必须为主键

相关文章

  • mysql索引,添加索引的原则

    索引用于快速找出在某个列中有一特定值的行。不使用索引,mysql必须从第1条记录开始然后读完整个表直到找出相关的行...

  • 5.2MySQL创建高性能索引考察点

    MySQL索引的基础和类型延伸:MySQL索引的创建原则延伸:MySQL索引的注意事项 索引的基础索引类似于书籍的...

  • Mysql添加索引

    mysql语句添加索引 1.PRIMARYKEY(主键索引) mysql>ALTERTABLE`table_nam...

  • 索引

    这道题目考察的知识点是MySQL组合索引(复合索引)的最左优先原则。 最左前缀匹配原则 在mysql建立联合索引时...

  • mysql 索引

    一、MySQL中索引的语法 创建索引 在创建表的时候添加索引 在创建表以后添加索引 注意: 索引需要占用磁盘空间,...

  • mysql&redis(面试题记)

    mysql 1、多表连接2、子查询3、索引都有哪些,索引能解决什么问题 ,如何创建索引,建索引有什么原则,索引的底...

  • MySQL索引及查询优化书目录

    MySQL索引的原理之索引目的 MySQL索引的原理之索引原理 MySQL索引的原理之索引的类型 MySQL索引的...

  • Mysql索引失效

    mysql 索引失效的原因有哪些?Mysql索引失效的原因 1、最佳左前缀原则——如果索引了多列,要遵守最左前缀原...

  • MySQL InnoDB索引设计指南

    一、索引设计原则 在MySQL中常用的B+树索引分为聚簇索引和辅助索引,关于辅助索引,虽然个数没有限制(聚簇索引一...

  • MySQL数据库优化

    一、MySQL如何优化1、表的设计合理化(符合3F)2、添加索引(普通索引、主键索引、唯一索引、全文索引)3、SQ...

网友评论

      本文标题:mysql索引,添加索引的原则

      本文链接:https://www.haomeiwen.com/subject/xdduxftx.html