索引是什么意思(数据库索引是什么意思)

  每个人在开发过程中都无法避免使用数据库索引,那么你了解数据库索引吗?接下来我简单说一下什么是数据库索引。

  1.数据索引有什么用?

  其实数据库索引是为了让数据查询更高效。

  二、什么是数据库索引?

  聚集索引(主键索引):在数据库中,所有行都根据主键索引进行排序。

  非聚集索引:是给常用字段添加索引。

  联合索引:是由几个字段组成的索引,称为联合索引。

  key ‘idx_age_name_sex’ (‘age ‘,’ name ‘,’ sex ‘)

  联合索引遵循最左边的前缀原则。什么意思?举个例子,如果一个学生表中的工会指数如上图,那么下面的A、B、C、D、E、F哪个会跟在指数后面?

  A:从学生中选择*年龄=16岁,姓名=’小张’

  B:从学生中选择*名=’小张’,性别=’男’

  C:从学生中选择*姓名=’小张’,性别=’男性’,年龄=18岁

  D:从学生中选择* 20岁,姓名=’小张’

  e :从学生中选择*年龄!=15且姓名=’小张’

  f :从学生中选择*年龄=15岁,姓名!=’小张’

  a遵循最左边匹配原则,年龄在最左边,所以a取索引;

  b直接从名字开始,不遵循最左边匹配原则,所以不遵循索引;

  c以名字开头,但在索引中有最左边的年龄,mysql会自动改成其中年龄=’18 ‘,名字=’小张’,性别=’男’,所以还是遵循最左边的匹配原则;

  d这是因为age20是一个范围,范围字段会结束范围后面的索引字段的使用,所以只取年龄索引;

  e这个虽然遵循最左边的匹配原则,但是不遵循索引,因为!=不要转到索引;

  f这个只取年龄指标,不取姓名指标,以上原因;

  第三,哪些列不取索引?

  学生表中的年龄、姓名两个字段被索引

  键“idx _ age”(“age”),

  键“idx _ name”(“name”)

  1.像这样意味着%前面不跟指数,后面跟指数

  A:从学生中选择*,其中“姓名”如“国王%”

  B:从学生中选择*,其中“姓名”如“%小”

  甲取指数,乙不取指数

  2.如果索引列用于计算,则不采用索引

  a :从年龄=108岁的学生中选择*

  b :从8岁=18岁的学生中选择*

  甲取指数,乙不取指数

  3.对索引列使用函数,不要取索引

  A:从学生中选*多联(‘姓名’,’哈’)=’王哈哈’;

  B:从学生中选择*其中name=concat(‘王哈’,’ ha ‘);

  a不取指数,B取指数

  4.使用了索引列!=不要索引,如下所示:

  从学生年龄中选择*!=18

  4.为什么要用B树做索引?

  这可以指什么是B树

  5.索引在磁盘上的存储?

  聚集索引和非聚集索引的存储方式不同,那么它们是如何存储的呢?

  有学生名单

  创建表格“学生”(

  ` id`int (11)不为null auto _ incrementcomment ‘主键id ‘,

  ` name`varchar (50) not null default ‘ ‘注释’学生姓名’,

  ` age`int (11)不为null默认0注释’学生年龄’,

  主键(` id `),

  key `idx_age` (`age `)、

  键` idx_name` (`name `)

  )engine=innodb default charset=utf8 comment=’学生信息’;

  表格内容如下

  Id是主键索引,名称和年龄是非聚集索引

  1.磁盘中聚集索引的存储

  簇索引叶节点存储表中的所有行数据;

  每个数据页都在不同的磁盘上;

  如果要找id=5的数据,先把磁盘0读入内存,然后用二分法找到3到6之间id=5的数字,再通过指针p1找到磁盘2的地址,再把磁盘2读入内存,用二分法找到id=5的数据。

  2.磁盘中非聚集索引的存储

  叶节点存储的是聚集索引键,而不是表中的所有行数据,所以搜索时只能找到聚集索引键,然后通过聚集索引在表中找到数据。

  如果您想查找name=肖旭,首先将磁盘0加载到内存中,然后使用二分搜索法方法查找指针p1指向的地址,然后使用指针p1指向的位置址可知道在磁盘2上面,然后通过二分查找法得知小徐id=4;

  然后在根据id=4将磁盘0加载到内存中,然后通过二分查找的方法查到在指针p1所指的地址上,然后通过指针p1所指的地址可知道在磁盘2上面,然后通过id=4查找出郑正行数据,就查找出name=小徐的数据了。

  旧称通检、备检或引得。组成的基本单位是索引款目。款目一般包括索引词、说明或注释语 、出处3项内容 。所有索引款目实现有序化编排。其本质特征是只揭示内容出处或文献线索 ,并不直接提供事实、资料本身。主要功能是为人们准确、迅速地获得文献资料提供线索性指引。常见的索引主要有报刊论文资料索引、文集篇目索引、语词索引、文句索引、关键词索引、专名索引、主题索引等。

  索引最早出现于西方,主要是中世纪欧洲宗教著作的索引。18世纪以后西方开始有主题索引,至19世纪末,内容分析索引被广泛使用。中国的索引出现较晚。一般认为,明末傅山所编的《两汉书姓名韵》是现存最早的人名索引。清代乾嘉时期,章学诚曾力倡编纂群书综合索引。20世纪20年代,随着西方索引理论与编制技术的传入,中国现代意义上的索引编制与研究才蓬勃展开 。1930年钱亚新发表《索引和索引法》,1932年洪业发表《引得说》,标志着具有中国特色的现代索引理论、技术已迅速发展起来。20世纪50年代,计算机技术被运用于索引编制 。此后,机编索引的大量出现,使索引编制理论、技术、索引载体形式发生了深刻变革。

  SQL标准中没有涉及索引,但商用关系数据库管理系统一般都支持索引机制,只是不同的关系数据库管理系统支持的索引类型不尽相同。

  索引已经成为关系数据库非常重要的部分。它们被用作包含所关心数据的表指针。通过一个索引,能从表中直接找到一个特定的记录,而不必连续顺序扫描这个表,一次一个地去查找。对于大的表,索引是必要的。没有索引,要想得到一个结果要等好几个小时、好几天,而不是几秒钟。

  • 109 views
    A+
发布日期:2021年10月19日 17:14:33  所属分类:网络推广
标签: