索引是一种快捷访问方式
更适合磁盘实现的树必须具备的属性:
B-Tree 结构7. Tree Indexes
Full key
WHERE x=123
Key scope
WHERE 45<x<123
Key prefix
WHERE x LIKE “J%”
数据库的查询和硬件密切相关,同样是 B-Tree,底层存储是顺序还是随机差异很大,在实际生产环境中存储可能是随机的。
进一步的复杂问题:Secondary Link
MySQL :: MySQL 8.0 Reference Manual :: 15.6.2.1 Clustered and Secondary Indexes
索引存在的问题:
磁盘空间开销
索引在磁盘空间的占比巨大。
处理开销
索引会造成更新效率的指数级下降。在所有数据导入后再建立索引可以提高效率,但仍不可避免。
关系型数据库最难处理的地方在于并发写入
索引降低查询效率?