mysql高级索引部分笔记!!!1
索引的的在于提高查找效率
1:查找快。排序(影响where和orderby)
是一种数据结构,除了数据本身,还维护一个特定查找算法的数据结构,这种数据结构指向数据,在这个基础上实现高级查找,BTREE索引
常见的索引是b术索引,聚集索引,复合索引,前缀索引都是使用b+书索引,还有哈希索引
有点:提高检索效率,减少io成本,对数据进行排序,降低排序成本,减少cpu的消耗
劣势:是一张表,占用空间,提高查询效率,降低了添加更新的数据的效率,只是提高效率的一个因素,如果有大量数据,需要长时间研究高效率的索引
分类:
单值索引:一个索引只有一个列,一个表可以添加多个索引
唯一索引:索引列的值必须唯一,但可以有空值
复合索引:一个索引包含多个列
索引结构:
b+树:原理:段区块,数据都放在子叶节点上;非叶子节点存储搜索方向的数据项
hash索引:
全文索引:
rtree索引:
那些适合:
主键自动创建唯一索引
频繁作为查询条件的字段
表用与其他表关联的字段,频繁更新的字段不适合创建索引
where用不到的字段,不创建索引
不适合:表记录太少,经常增删改的表,某个数据列包含很多重复的内容