Mysql底层是什么?ACID是什么?隔离级别有哪些?索引失效场景有那些?聚簇索引是什么?B+树优势是什么?什么场景下建索引不如不建索引
时间: 2023-11-06 10:04:52 浏览: 96
Mysql数据库索引创建、索引删除、索引失效场景详解
5星 · 资源好评率100%
MySQL底层是由C和C++编写的,它的核心是一个客户端/服务器模型的关系型数据库管理系统。MySQL使用了很多操作系统原生的API接口,并且本身也提供了API接口,用于让其他程序能够访问和操作MySQL数据库。
ACID是指数据库事务应该具备的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。
隔离级别是指多个并发的事务之间的隔离程度,包括:读未提交(Read uncommitted)、读提交(Read committed)、可重复读(Repeatable read)和串行化(Serializable)。
索引失效的场景包括:使用了函数或表达式、模糊查询时以%开头、列类型不匹配、使用了不等于操作符、使用了OR操作符等。
聚簇索引是一种特殊类型的索引,它将数据按照主键的顺序进行物理存储,同时也包含了整张表的数据。因此,聚簇索引可以提高主键查询的速度,但是也会导致插入和更新操作的代价增加。
B树是一种高效的数据结构,它具有平衡性和多路性的特点,适合于在磁盘上存储和查询大量数据。B树的优势包括:高效的查找、插入和删除操作、支持范围查询、支持多个关键字排序、支持数据的动态增长和自动平衡等。
建立索引的场景包括:经常被查询的列、参与连接的列、参与排序和分组的列等。而不建立索引的场景包括:数据量很小、查询次数很少、经常增删改的列等。因为建立索引会增加写操作的代价,如果数据量很小或者查询次数很少,建立索引不会带来明显的性能提升,反而会浪费资源。而对于经常增删改的列,建立索引会导致维护索引的代价变大,不建立索引反而更合适。
阅读全文