美文网首页
数据库索引

数据库索引

作者: mualex | 来源:发表于2018-01-08 11:58 被阅读19次

索引是用来迅速定位并且找到特定的数据集。 如果没有索引, 数据库会从头遍历整个表, 采用索引的情况下, 数据库可以从数据中端定位并且开始寻找需要的数据集。

聚集索引 Cluster Index

根据真实地址存储和排序(asc/desc), 每个表中只能有一个Cluster Index. 只有Cluster Index 被创建了以后, 表中数据才会依据排序后的顺序存储。否则表中存储数据的结构在无序的堆中。

索引的叶结点是数据节点

非聚集索引 Nonclustered Index

索引的叶结点是索引节点, 保存一个指针指向数据块

最左匹配
(col1), (col1, col2), and (col1, col2, col3) 可以hit到
(col1, col2, col3) index

B树索引

B-tree index 会在以下操作生效:
=, > , >=, <, <=, BETWEEN, LIKE (1. 只能应用于不以%开头的字符串常量)

SELECT * FROM tbl_name WHERE key_col LIKE 'Patrick%';    (hit)
SELECT * FROM tbl_name WHERE key_col LIKE 'Pat%_ck%'; 

'Pat' <= key_col < 'Pau' 只有这样的才会用到索引

SELECT * FROM tbl_name WHERE key_col LIKE '%Patrick%';   前% 不会用到索引
SELECT * FROM tbl_name WHERE key_col LIKE other_col;     非字符串常量,不会用到索引

以下成功应用索引

... WHERE index_part1=1 AND index_part2=2 AND other_column=3
    index = 1 OR index = 2 
... WHERE index=1 OR A=10 AND index=2
    optimized like "index_part1='hello'" 
... WHERE index_part1='hello' AND index_part3=5
    Can use index on index1 but not on index2 or index3 
... WHERE index1=1 AND index2=2 OR index1=3 AND index3=3;

以下不会应用索引

    index_part1 is not used 
... WHERE index_part2=1 AND index_part3=2
    index is not used in both parts of the WHERE clause  
... WHERE index=1 OR A=10
    No index spans all rows
... WHERE index_part1=1 OR index_part2=10

Hash 索引
只生效与 = 或者 <> , 速度很快

相关文章

  • 数据库索引记录

    本文用来记录数据库索引相关内容; 1】数据库索引分为单列索引,组合索引,全文索引,空间索引 2】单列索引:只有一个...

  • 索引,序列,视图

    1、数据库索引索引是数据库对象之一,用于加快数据的检索,类似于书籍的索引。在数据库中索引可以减少数据库程序查询结果...

  • Sql索引优化—转载

    数据库索引使用方式 使用索引是提高数据库查询效率的主要方式,下面从索引结构,索引类型,索引操作,命中索引几个方面来...

  • 数据库 - 索引

    索引 索引 索引的建立对于数据库的高效运行是很重要的。索引可以大大提高数据库的检索速度。 索引分单列索引,组合索引...

  • [Mysql]Mysql索引实现原理及相关优化策略

    数据库索引 数据库索引是什么? A database index is a data structure that...

  • 数据库索引定义和类型

    数据库索引类型及实现方式 1、索引定义 数据库索引好比是一本书前面的目录,能加快数据库的查询速度。索引是对数据库表...

  • 数据库索引结构总结

    [TOC] 参考 数据库索引数据结构总结 本文摘抄自数据库索引数据结构总结 1. 摘要 数据库索引是数据库中最重要...

  • MySQL 索引

    MySQL 索引 数据库索引的原理:数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表...

  • 『数据库』索引的工作原理

    数据库索引能够提高数据库的查询效率,那么索引到底是什么。 什么是索引 索引本身这个名字已经能回答这个问题了,索引就...

  • PostgreSQL基础知识--索引

    索引是增强数据库性能的常用方法。索引使得数据库在查找和检索数据库的特定行的时候比没有索引快得多。但索引页增加了整个...

网友评论

      本文标题:数据库索引

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