索引

来源:互联网 发布:主流数据库 对比 编辑:程序博客网 时间:2024/05/29 04:04
  1. 索引(index):帮助mysql高效获取数据的数据结构,可以得到索引的本质:数据结构。
  2. 在数据之外 , 数据库系统还维护着满足特定查找算法的数据结构。 这里写图片描述
  3. 一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上。
  4. 复合索引, 前缀索引,唯一索引默认都是使用B+树索引, 当然 除了B+树这种类型的所以要之外 , 还有哈希索引等。
  5. 索引的优势:提高数据的检索效率 降低数据的io成本。通过索引对数据进行排序, 降低数据排序的成本, 降低了CPU的消耗。
  6. 劣势:实际上索引也是一张表, 该表保存了主键与索引字段,并指向实体表的记录, 所以索引列也是要占据空间的,虽然索引大大的提高了查询速度, 同时会降低更新表的速度,如对表进行insert 、update、delete 因为更新表时。 MySQL 不仅要保存数据 , 还要保存一下索引文件每次更新添加了索引列的 字段, 都会调整因为 更新带来的键值变化后的索引信息。 索引只能提高效率的一个因素, 如果你的mysql有大数据的表, 就需要花时间研究建立最优秀的索引 , 或优化查询。
  7. 索引的分类:
    1.单值索引:一个索引只包含单个列 , 一个表可以有多个索引。
    2.唯一索引:索引列的值必须唯一, 但允许有空值
    3.复合索引:一个索引包含多个列

8.基本语法:
1.创建:create [unique]index indexname on tablename(columnname(lenth))
2.删除:drop index [indexname] on tablename
3.查看:show index from tablename