索引使用优化

本文介绍了数据库索引的基础概念,包括聚簇索引和二级索引的区别,并深入探讨了不同类型的主键选择及其对性能的影响。此外,还讲解了如何创建有效的联合索引以及在使用字符串索引时应注意的问题。

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

首先需要明白什么是聚簇索引 和 二级索引

        聚簇索引 :主键 和 记录存储在一起。

        二级索引:索引和主键存储在一起。按索引查询后查询的是主键信息,在回表才能查询到记录。 

1. 存储空间

        按照page 16k 计算。索引字段大小-> b+树层数  3层 的树  16K/(8字节的key + 8 字节指针)一页可以存储 1k记录。那么可以存储 1k * 1k *1k = 10亿条记录

2.主键选择

        自增主键

                写入速度快,但是需要走二级索引。需要回表操作。

        随机主键

                当页满时,由页的最大最小值判断还能往页里插入时,会引起表分裂,数据移动。写入速度受到影响。

        业务主键

                由业务自己定义的主键。采用雪花算法,在有序的基础上。也可以避免走二级索引。

        联合主键

                主键的字段长度和字段数目要越少越好

3.联合索引

        按索引区分度排序

                尽量能过滤掉更多的数据

        覆盖索引

                主键和要查询字段 建立索引。避免了走二级索引回表。

4. 字符串索引

        设置合理长度

        模糊查询可能引起索引失效。

SQL优化使用索引是一种常见的方法。索引可以加快数据库的查询速度和性能。下面是一些使用索引进行SQL优化的常见技巧: 1. 选择合适的列进行索引:通常情况下,需要在经常用于查询条件的列上创建索引。选择经常用于筛选、排序或连接操作的列可以提高查询性能。 2. 避免过多的索引:虽然索引可以提高查询速度,但过多的索引会增加数据库的维护成本并降低写入性能。只创建必要的索引,避免不必要的列进行索引。 3. 多列索引优化:对于经常一起使用的列,可以创建多列索引以提高查询性能。多列索引可以更好地满足复杂查询条件。 4. 聚簇索引优化:聚簇索引是一种特殊的索引类型,它可以将数据物理上组织在一起。通过合理地选择聚簇索引,可以减少磁盘IO和提高查询性能。 5. 使用覆盖索引:覆盖索引是指索引包含了查询所需的所有列。通过使用覆盖索引,可以减少数据库的访问次数,从而提高查询性能。 6. 定期更新统计信息:统计信息用于查询优化器选择合适的索引和执行计划。定期更新统计信息可以确保查询优化器能够做出更准确的选择,提高查询性能。 7. 避免索引过度优化:有时候过度使用索引可能会导致性能下降。当数据量较小或查询频率低时,可以考虑不使用索引或者使用覆盖索引来避免过度优化带来的性能问题。 需要注意的是,索引的创建和维护会增加额外的开销,因此在使用索引进行优化时需要综合考虑查询频率、数据量和维护成本等因素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值