测试开发之数据库索引实现原理-Testfan打卡学测开1022

本期技术分享讲师:极光老师

题目内容

数据库索引实现原理

本期语音讲解

本期解析

索引的思想是用空间换时间, 缺点如果数据量太大,过多索引占用大量磁盘空间,所以一般只对关键字段,经常需要检索的字段设置索引。

索引的创建和删除

alter table table_name add index index_name (column_list) ;

drop index index_name on table_name;

工具对索引的支持

索引方式,也是索引的数据结构,BTREE 说白了用树形结构存储索引信息,大部分数据库系统及文件系统都采用B-Tree或其变种B+Tree作为索引结构(树的数据结构里面还有二叉树,平衡二叉树,红黑树,一系列知识,有兴趣的同学可以自己扩展,作为了解即可)

HASH结构也可以用作索引存储结构,HASH 可以理解成java中map或者python中字典,key-value 结构,sql语句中 = 或者 != 用HASH索引性能其实比BTREE高,为什么数据库一般默认还是BTREE, 主要支持更复杂的表达式 比如 BETWEEN等操作

索引类型也叫索引种类,为了满足业务

唯一索引:加速查询 + 列值唯一(可以有null)

主键索引:加速查询 + 列值唯一(不可以有null)+ 表中只有一个

组合索引:多列值组成一个索引,专门用于组合搜索,其效率大于索引合并

全文索引:对文本的内容进行分词,进行搜索 (高级版本新特性)

对应的脚本

1.PRIMARY KEY(主键索引)

mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )

2.UNIQUE(唯一索引)

mysql>ALTER TABLE `table_name` ADD UNIQUE (`column` )

3.INDEX(普通索引)

mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` )

4.FULLTEXT(全文索引)

mysql>ALTER TABLE `table_name` ADD FULLTEXT ( `column` )

5.多列索引

mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181022B0A9H300?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券