`
winds_he
  • 浏览: 21920 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

mysql索引规则

 
阅读更多
1.最左前缀匹配原则,非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整。
2.=和in可以乱序,比如a = 1 and b = 2 and c = 3 建立(a,b,c)索引可以任意顺序,mysql的查询优化器会帮你优化成索引可以识别的形式
3.尽量选择区分度高的列作为索引,区分度的公式是count(distinct col)/count(*),表示字段不重复的比例,比例越大我们扫描的记录数越少,唯一键的区分度是1,而一些状态、性别字段可能在大数据面前区分度就是0,那可能有人会问,这个比例有什么经验值吗?使用场景不同,这个值也很难确定,一般需要join的字段我们都要求是0.1以上,即平均1条扫描10条记录
4.索引列不能参与计算,保持列“干净”,比如from_unixtime(create_time) = ’2014-05-29’就不能使用到索引,原因很简单,b+树中存的都是数据表中的字段值,但进行检索时,需要把所有元素都应用函数才能比较,显然成本太大。所以语句应该写成create_time = unix_timestamp(’2014-05-29’);
5.尽量的扩展索引,不要新建索引。比如表中已经有a的索引,现在要加(a,b)的索引,那么只需要修改原来的索引即可
分享到:
评论

相关推荐

    MySQL索引最佳实践

    ### MySQL索引最佳实践 #### 一、理解MySQL索引的重要性 索引是数据库性能优化中最常用也是最重要的手段之一。合理的索引设计可以显著提高查询效率,减少服务器资源的消耗。在MySQL中,索引的选择与配置对于开发...

    04-VIP-Mysql索引优化实战一.pdf

    MySQL索引优化是数据库性能提升的关键环节,本篇主要探讨了几个关于MySQL索引使用和优化的重要知识点。 首先,创建了一个名为`employees`的员工记录表,其中包含`id`(主键)、`name`、`age`、`position`和`hire_...

    mysql索引长度计算规则

    mysql索引长度计算规则

    Mysql索引数据结构.pptx

    MySQL 索引数据结构是数据库管理系统中提升查询效率的关键技术。当我们在处理查询速度较慢的 SQL 语句时,通常会考虑引入索引来优化。索引是一种特殊的数据结构,它按照一定的排序规则存储了数据表中的部分或全部...

    mysql索引数据结构详解

    3. 查询遵循必须按照索引顺序的规则:从最左边开始例如(bill,30) (bill 30 dev)可以,但是 30 dev 不行(联合索引的优先级左边的大于右边的,相等时才会调用下一个优先级的索引排序)。 索引的类型 MySQL ...

    MySQL 进阶-索引使用规则

    以下将详细介绍MySQL中的索引使用规则及其相关知识。 1. **创建索引** - **CREATE INDEX** 语句用于在表的列上创建索引,例如:`CREATE INDEX idx_name ON table_name (column_name);` - **唯一性索引**:`UNIQUE...

    mysql多条件索引

    然而,多列索引的使用有其特定规则,被称为“最左前缀原则”。这意味着查询条件必须从索引的第一列开始,并按照索引列的顺序匹配,直到遇到范围查询(如`, `LIKE`等)或者中间缺失某列。例如,对于`name, age, id`的...

    MySQL索引分析和优化

    MySQL索引分析和优化是数据库管理中的重要环节,它直接影响到数据查询的速度和数据库的性能。索引可以被看作是数据库中的一种特殊文件,它按照特定的规则组织,允许数据库快速定位到所需的数据行。 首先,我们来看...

    MySQL索引机制(详细+原理+解析).doc

    MySQL 索引机制详细解析 MySQL 索引机制是 MySQL 中的一种数据结构,它可以加快数据的检索速度。索引机制是指在数据库中的...但是,索引机制也需要遵循一定的设计原则和维护规则,以确保索引的有效性和查询的高效率。

    MySQL 索引及优化实战1

    MySQL 索引是数据库性能优化的关键因素,它通过预排序数据来加快查询速度。索引分为聚集索引和非聚集索引。 聚集索引(Clustered Index)是数据库表中数据实际存储的方式,决定了数据在磁盘上的物理顺序。由于数据...

    mysql索引与树结构(索引简介、索引用法详解、B-Tree索引结构、索引导致的问题).docx

    - **修改索引**: MySQL不直接支持修改索引,需先删除再重建。 - **查询索引** - **基础命令**: `EXPLAIN SELECT * FROM table_name WHERE condition;` - **参数解释**: - **id**: 指示查询的执行顺序。 - **...

    MySQL索引背后的数据结构及算法原理.pdf

    了解MySQL索引背后的数据结构及算法原理,是数据库优化和查询性能调优的重要部分。 ### B-Tree B-Tree是一种自平衡的树数据结构,它维护数据的有序性,并允许搜索、顺序访问、插入和删除在对数时间内完成。B-Tree...

    mysql编码规则

    MySQL编码规则和表的命名规范是数据库设计的基础,它们确保了数据库的清晰度、可读性和可维护性。以下是对这些规范的详细说明: 1. **字段命名规范**: - 应使用有意义的字段名,简洁且具有描述性。避免使用过长的...

    深入浅析Mysql联合索引最左匹配原则

    MySQL的联合索引是一种优化查询性能的有效手段,它遵循“最左匹配原则”。这个原则指出,当创建一个包含多个列的联合索引时(例如,KEY test_col1_col2_col3 ON test(col1, col2, col3)),MySQL会在查询时从索引的...

    83案例实战:陌生人社交APP的MySQL索引设计实战(3).pdf

    在进行MySQL索引设计时,特别是对于像陌生人社交APP这类需要处理大量查询和筛选的场景,索引的有效性直接关系到数据库性能的优劣。设计索引时需要充分考虑到查询的特性,比如查询中用到的条件、字段的类型(等值匹配...

    MySQL字符串索引更合理的创建规则讨论

    在MySQL中,创建字符串索引是一项关键的性能优化策略,特别是对于处理大量文本数据的数据库。本文主要讨论了如何更合理地为字符串字段创建索引,以...通过实验和调整,可以找到最适合特定场景的字符串索引创建规则。

    MySQL SQL高级特性 字段约束-索引-视图-外键学习实践

    总结来说,字段约束、索引、视图和外键是MySQL数据库设计和优化的重要组成部分。通过理解和合理使用这些特性,可以有效地提高数据库管理的效率和数据操作的性能。在实际应用中,应当根据具体的数据模型和业务需求...

    新版 MySQL DBA 高级视频 基于MySQL 5.7 MySQL 8.0版本.rar

    │ 第二十课MySQL索引和调优.pdf │ 第二课MySQL入门介绍.pdf │ 第五课MySQL常用函数介绍.pdf │ 第八课InnoDB内核.pdf │ 第六课SQL高级应用.pdf │ 第十一课MySQL表分区8.0.pdf │ 第十七课Elasticsearch分享-...

    MySQL优化文档笔记

    选择正确的索引策略,利用优化器的规则;合理使用执行器,尽量减少I/O操作。 MySQL提供了查询性能分析工具,如`PROFILE`,但已在较新版本中被弃用,推荐使用`performance_schema`。`performance_schema`是一个内置...

Global site tag (gtag.js) - Google Analytics