Mysql索引(二叉树,红黑树,B,分享一些行业经验

本文详细介绍了MySQL中不同类型的索引(如聚簇、非聚簇、全文、空间索引),索引优化策略,以及并发控制中的锁机制。同时提到Kafka的基础、安装和架构要点,适合数据库和流处理技术的学习者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不适合使用hash索引的场景

不适用于顺序查询:索引存储顺序的不是值的顺序

不支持模糊匹配

不支持范围查询

不支持部分索引列匹配查找:如A,B列索引,只查询A列索引无效

1.6空间数据索引R-Tree( Geospatial indexing )


MyISAM支持地理空间索引,可以使用任意维度组合查询,使用特有的函数访

问,常用于做地理数据存储,使用不多

InnoDB从MySQL5.7之后也开始支持

1.7全文索引(FULLTEXT)


在文本中查找关键词,而不是直接比较索引中的值,类似搜索引擎

InnoDB从MySQL 5.6之后也开始支持

1.8聚簇和非聚簇索引


区别:数据和索引是否存储在一起

存放在一起:聚簇索引

不在一起:非聚簇索引

叶子节点既有索引又有数据

主键 就是聚簇索引

在这里插入图片描述

1.9聚簇和非聚簇索引,主键和二级索引


InnoDB(聚簇索引)

···主键 就是聚簇索引(存放的是数据)主键次序就是索引次序

···非主键索引-----二级索引:利用主键,最终找到数据(存放的是主键和索引)

**MyISAM(非聚簇索引)**两个索引里面存放的都是数据

在这里插入图片描述

索引

冗余和重复索引:

冗余索引:(A),(A,B)

重复索引:已经有索引,再次建立索引

索引优化策略

1.独立地使用列:尽量避免其参与运算,独立的列指索引列不能是表达式的一部分,也不能是函数的参数,在where条件中,始终将索引列单独放在比较符号的一侧

2.左前缀索引:构建指定索引字段的左侧的字符数,要通过索引选择性来评估

索引选择性:不重复的索引值和数据表的记录总数的比值

3.多列索引:AND操作时更适合使用多列索引,而非为每个列创建单独的索引

4.选择合适的索引列顺序:无排序和分组时,将选择性最高放左侧

索引优化建议

1.只要列中含有NULL值,就最好不要在此例设置索引,复合索引如果有NULL值,此列在使用时也不会使用索引

2.尽量使用短索引,如果可以,应该制定一个前缀长度

3.对于经常在where子句使用的列,最好设置索引

4.对于有多个列where或者order by子句,应该建立复合索引

5.对于like语句,以%或者‘-’开头的不会使用索引,以%结尾会使用索

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值