mysql的索引创建原则

索引创建原则:

1.最左匹配原则:

  • 比如a=1 and b=2, and c>3 and d=4, a b c d字段都创建了索引,但此时只用到了 a b索引;如果改成a=1 and b=2 and d=4 and c>3,将d和c对调下,此时用到了a b d索引

2.=和in位置无关

3.常出现在where或on后的字段

4.order by 或group后的字段,添加索引加快分组和排序

5.某字段中相同数据较少适合添加字段

6.联合索引,联合索引比单个索引快

7.唯一值字段

8.字段中的值较短的适合添加索引

9.删除无用索引,索引创建过多也会影响查询速度

 

 

MySQL索引创建时应遵循一些基本原则,以提高查询性能并优化数据库结构: 1. **选择恰当的字段**:对经常用于WHERE、JOIN或ORDER BY语句的列创建索引。这些列的数据变化频率相对较低且值的唯一性越高越好。 2. **避免过宽的索引**:如果索引包含过多的列,查询效率会降低,因为每次搜索都需要比较所有列。尽量创建复合索引(如 `(column1, column2)`),当需要同时过滤多个列时。 3. **考虑覆盖索引**:如果一个查询的返回结果可以由索引完全提供,那么就不需要访问数据表了,这称为“覆盖索引”。例如,对于`SELECT column1, column2 FROM table WHERE column1 = ?`,如果`column1`和`column2`都在索引内,就形成了覆盖索引。 4. **避免在频繁更新的列上创建索引**:因为插入、删除或修改操作会使索引失效,可能导致性能下降。但对于读取密集型应用,这通常是可以接受的。 5. **分区和索引配合**:对于大表,可以考虑按某个列进行分区,然后在每个分区上单独创建索引。 6. **避免全表扫描**:理想情况下,索引应该使得大部分查询能够快速定位到特定行,而不是导致全表扫描。 7. **注意哈希索引**:哈希索引只适用于等值查找,而且不能处理排序,所以在涉及范围查询时效果不佳。 8. **定期维护**:通过ANALYZE TABLE或OPTIMIZE TABLE命令检查和调整索引,保持其有效性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值