首页 > 数据库 >【mysql】索引

【mysql】索引

时间:2022-11-11 12:00:37浏览次数:42  
标签:顺序 插入 聚簇 索引 哈希 mysql 物理


mysql的索引是由引擎决定的。

1.哈希索引,这个和哈希表是一样的原理,从关键字的哈希函数值映射到物理位置。特点是只能针对等于的查询,效率很高。

2.B树索引,为关键字维护一棵b树,通常是b+树,叶子节点存的是数据块的位置。这种索引主要实现了顺序。首先可以排序。其次做前缀索引,应用于多列索引的场合。如果是多列,那么构建索引的顺序决定了最终字典序的顺序。查询时,要特别注意条件,因为是最左匹配。索引构建索引的顺序要按照查询的需求来。

3.全文索引,在myisam引擎中,用于文本的查询,使用了分词这样的技术,检索内容比较快。

4.聚簇索引,其实这个维度和上面是不同的概念。聚簇索引并不是索引,主要强调的是行的物理排列方式,也是按照顺序的。所以最终的行的顺序和索引是一致的。不过,在一张表中,只能有一种物理排列顺序,也就只能有一种聚簇索引。聚簇索引的好处是,检索相邻的数据很快,因为物理上是按照顺序来的。但是缺点是,对插入数据的顺序要求较高,如果按照顺序插入,性能很好,但是如果不是,或者是随机,那么很可能要插入已存在的两行之间,那么只能做移动,效率很低,或者插入的一个满的页,那么会导致页的分离,也会有数据的复制。聚簇索引,也可以进一步细分,这个列是不是键,如果是,那么索引项的数目更少,因为不需要为每一行数据都做索引,只要为每一个物理页的第一行做索引即可。这一行叫做anchor record。但如果不是键,那么就需要为每一个值做索引,只存该值第一行的物理位置,总之得到第一行的位置,后面就可以当做链表了。对不是按顺序物理排放的列,只能做二级索引,也就是为每一个值都做一个索引项。

标签:顺序,插入,聚簇,索引,哈希,mysql,物理
From: https://blog.51cto.com/u_15873544/5844117

相关文章

  • MapReduce实战之倒排索引案例(多job串联)
    0)需求:有大量的文本(文档、网页),需要建立搜索索引输出数据:a:atguigupingpingatguigussatguigussb:atguigupingpingatguigupingpingpingpingssc:atguigussatguigup......
  • CentOS7 卸载 mysql8
    1、停掉mysql服务servicemysqlstop查看已安装的mysqlrpm-qa|grepmysql2、卸载mysql服务yumremovemysql-servermysqlmysql-libs再次查看是否还有......
  • MySQL复制表结构和内容到另一张表…
    1.复制表结构及数据到新表TABLE 新表SELECT * FROM 旧表2.只复制表结构到新表TABLE 新表SELECT * FROM 旧表 WHERE 1=2即:让WHERE条件不成立.方法二:(低版......
  • 12:企业规范约束-MySQL
    目录​​12.1★库表字段约束规范​​​​12.2索引规范​​​​12.3★SQL开发约束规范​​​​12.4其他规范​​12.1★库表字段约束规范字段名:​​is_vipunsignedtin......
  • 10:子查询-MySQL
    目录​​10.1子查询基本语法​​​​10.2in和notin​​​​10.3exists和notexists​​​​10.4基础结束语​​10.1子查询基本语法将一个查询的结果作为另一个查......
  • 11:高级部分-MySQL
    目录​​(一)view视图​​​​1.开场​​​​2.view视图创建、使用以及作用​​​​3.显示视图​​​​4.更新和删除视图​​​​5.视图算法:temptable,merge​​​​(......
  • 0:数据库的产生-MySQL
    目录​​0.1什么是数据库database​​​​0.2抛出问题,数据库的产生​​​​0.3数据库萌芽阶段的发展历程​​​​0.4CRUD​​​​0.5层次模型​​​​0.6网状模型​......
  • Prometheus 监控Mysql服务器及Grafana可视化
    Prometheus监控Mysql服务器及Grafana可视化、mysql_exporter:用于收集MySQL性能信息。使用版本mysqld_exporter0.11.0官方地址使用文档:https://github.com/promethe......
  • mysql常用操作
    查看表的字符集语法:showtablestatusfrom库名like表名; mysql8版本查看MYSQL数据库服务器和数据库字符集方法一:showvariableslike'%character%';方法二:showv......
  • MYSQL join..on 后的and 和where的区别
    今天在写SQL语句时发现一个问题selectcount(1)ascountfromsmbms_billbleftjoinsmbms_providerponb.providerId=p.id......