om/数据库/mysql/索引.md

34 lines
900 B
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Innodb
存储文件有2个表结构文件和索引数据文件索引和数据在一个文件中减少一次io。
# MySim
存储需要3个文件表结构文件索引文件和数据文件先比Innodb多一次io。
# 二叉树
1. 二叉树
2. BST树Binary Search Tree二叉搜索树
3. AVL树
4. 红黑树
# 多叉树
B-树,数据存储在节点上
B+树,数据存贮在最终叶子节点上
相同树高下B+数可以搜索更多数据。
一般情况下3-4层的B+数可以支持千万级别的数据量。
对于频繁更新的字段,最好不要添加索引。
数据迁移比较慢,可以先删除索引,数据迁移完成后,重新构建索引。
跟数据绑定的索引称为聚簇索引,没有跟数据绑定的索引称为非聚簇索引。
数据只存储一份,一个索引一个树,其他索引的叶子节点指向聚簇索引。