美文网首页
创建高性能的索引笔记

创建高性能的索引笔记

作者: Volcannozzz | 来源:发表于2018-06-20 18:05 被阅读0次

B树索引是按顺序组织的,因此适合查找范围数据
B树索引适合全键值,键值范围和键前缀查找。

全文索引

索引的优点
索引可以让服务器快速地定位到表的指定位置
索引大大减少了服务器需要扫描的数据量
索引可以将随机I/O变为顺序I/O

三星系统原则:

相关的记录放到一起为一星;索引的数据顺序和查找中的排列顺序一致为一星;覆盖索引为一星;

索引的使用是相对的:对于非常小的表,大部分的情况下,简单的全表扫描更高效。

高性能的索引策略

  1. 独立的列

    将建有索引的列单独放在一侧,而不是需要进行某种运算。“独立的列”是指索引列不能是表达式的一部分,也不能是函数的参数。

  2. 前缀索引和索引选择性

    索引选择性越高越好,如果1000个记录,1000个记录的值都不相同是最优的。

    前缀索引的缺点是,无法使用前缀索引进行ORDER BY和GROUP BY,也无法用作覆盖索引。

    另:有时也会需要后缀索引,MYSQL不支持,但是可以通过字符串反转后存储,并基于此进行前缀索引,通过触发器进行维护。

聚簇索引

是一种数据存储方式。

InnoDB通过主键聚集数据。

如果没有定义主键,InnoDB会选择一个唯一的非空索引代替。如果没有这样的索引,引擎会隐式定义一个主键来作为聚簇索引。

二级索引可能比想象的要大,因为在二级索引的叶子节点包含了引用行的主键列。

尽可能按主键顺序插入数据,并且尽可能地使用单调增加的聚簇键的值来插入新行。

覆盖索引

在extra列可以看到using index的信息。

使用索引扫描来做排序

如果执行计划中的type列为index,说明使用了索引扫描排序。

排序有两种,通过排序操作,或者按索引顺序扫描。

应该避免创建重复索引,发现以后也应该立即移除。

未使用的索引应该删除。

索引和锁

索引可让查询锁定更少的行,从而提高并发性能。、

InnoDB只有在访问行的时候才会对其加锁,而索引可以减少引擎访问的行数,从而减少锁的数量。

5.1之后的版本中,服务器过滤掉行之后就会释放锁。

相关文章

  • 创建高性能的索引笔记

    B树索引是按顺序组织的,因此适合查找范围数据B树索引适合全键值,键值范围和键前缀查找。 全文索引 索引的优点索引可...

  • face17 mysql创建高性能索引

    mysql创建高性能索引 简单描述 mysql中 索引 主键 唯一索引 联合索引的区别对数据库性能有什么影响 创建...

  • 创建高性能索引

    索引基础 索引的类型 B-Tree索引 当人们谈论索引时,如果没有特别指明类型,那多半说的是B-Tree索引。存储...

  • 创建高性能索引

    Indexing Basics 索引类型 B-TREE 索引 InnoDB使用的即是B-TREE索引。存储引擎以不...

  • 《高性能MySQL》笔记(2)——创建高性能索引

    创建高性能索引 索引是什么?有什么作用? 索引是存储引擎用于快速找到记录的一种数据结构 如书的目录索引一般,数据库...

  • 创建高性能的索引

    索引 存储引擎用于快速找到记录的一种数据结构(索引的基本功能)在MySQL中,存储引擎先在索引中找对对应值,根据匹...

  • mysql笔记

    mysql笔记 索引创建索引创建唯一索引CREATE UNIQUE INDEX indexName ON tabl...

  • 【高性能MySQL】创建高性能的索引

    索引基础 索引是存储引擎用于快速找到记录的一种数据结构。索引能轻易将查询性能提高几个数量级。索引可以包含一个或多个...

  • MySQL创建高性能索引

    索引对性能的影响:比如,数据表有一千条数据,只需要根据条件查询其中的一条,只需要针对这一列创建索引, 只扫描这一条...

  • 三、创建高性能索引

    目录[toc] 概述 索引是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能非常关键。尤其是当表中的数据...

网友评论

      本文标题:创建高性能的索引笔记

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