`
haiming.wang
  • 浏览: 18829 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Mysql建立索引的原则

阅读更多

1:mysql是前置匹配,例如 表A,主键ID, 字段有 name, age, money等,如果建立name 和 age两个索引,那么在where条件中有name或age的时候会分别调用此两个索引,但是如果是一个索引 name + age 则当查询条件中有name 或有(name和age)的时候会调用此索引,如果查询条件只有age的时候此索引不会调用,因为mysql的索引是前置匹配的

2:mysql的索引是顺序匹配的,例如 name + age建立了一个索引,那么搜索条件是age + name就不能调用此索引了

3:索引要求尽量少建立,例如需要两个索引name 和 name + age 那么不要建立两个索引,一个就够了,因为是前置匹配,所以建立name + age的索引也能让查询条件中只有name的时候也能调用此索引

4:索引不要放置在boolean类型的字段和Blob字段上,还有索引有限制的,联合字符串的长度不能超过256 *3 -1 = 767个字节,也就是name + age的索引,这个字段的值组成的字符串的长度不能超过767个字节(255个字符)

5:索引的建立要建立在查询条件的基础上,还有建立后看mysql的log进行查询分析,看看是否有缺少索引的情况

分享到:
评论

相关推荐

    mysql存储与索引技术

    例如,如果查询多涉及时间戳字段,可以针对该字段建立索引,以加快查询速度。但是,索引并非没有代价,它们占用磁盘空间,并可能影响插入和更新操作的速度。对于 InnoDB 引擎,当表空间文件(ibdata1)过大且无法...

    mysql数据库设计原则

    - **按需创建索引**:不是所有的字段都需要建立索引。应根据查询需求和表结构来决定哪些字段应该被索引。 - **复合索引策略**:当一个查询涉及多个字段时,可以考虑创建复合索引以减少索引的数量,并提高查询效率。 ...

    MYSQL索引知识

    使用索引时应遵循一定的原则,如避免在频繁更新的列上创建过多索引,对常用于查询的字段建立索引,数据量小的表通常无需索引,以及在区分度高的列上建立索引等。 3. **索引的分类**: - **单列索引**:包括普通...

    面试mysql 之索引 锁 事物

    - 联合索引遵循最左前缀原则:查询时优先使用联合索引中最左边的列进行匹配,从而提高查询效率。 #### 三、事务 **事务的概念与ACID特性:** 事务是一组操作的集合,这些操作作为一个整体被提交或回滚。事务具有...

    mysql 索引失效详解

    4. 经常需要根据范围进行搜索的列上建立索引。 5. 经常需要排序的列上建立索引。 6. 经常使用 WHERE 子句的列上建立索引。 索引长度计算 ------------- 索引长度的计算公式为:`(Character Set:utf8mb4=4,utf8=3,...

    浅谈mysql的索引设计原则以及常见索引的区别

    其次,对于经常需要进行排序、分组和联合操作的字段,如在ORDER BY、GROUP BY、DISTINCT和UNION等操作中出现的字段,应建立索引以避免排序带来的性能损失。 第三,常作为查询条件的字段也需要建立索引。这可以显著...

    Mysql数据库索引创建、索引删除、索引失效场景详解

    它通过分词技术建立索引,提高搜索效率。然而,全文索引的使用受到MySQL版本、存储引擎和字段类型的限制。例如,MySQL5.6之前,全文索引仅限于MyISAM引擎,而5.6之后的InnoDB引擎也开始支持。 除了创建索引,索引...

    mysql多条件索引

    MySQL中的索引是一种提高...总结起来,MySQL的多条件索引利用了最左前缀原则,提高了复杂查询的执行速度,但设计合理的索引结构和顺序至关重要。通过理解这些原理,我们可以更有效地优化数据库,提升系统的整体性能。

    mysql索引最左原则实例代码

    B+树是按照从左到右的顺序建立的,因此,在使用复合索引进行查询时,MySQL会首先根据第一个索引字段进行搜索,然后依次使用后续的字段进行范围限定。 综上所述,MySQL索引最左原则是数据库查询优化的重要知识点之一...

    mysql索引与视图的实例附答案宣贯.pdf

    2. 为经常需要排序、分组和联合操作的字段建立索引; 3. 为常作为查询条件的字段建立索引; 4. 限制索引的数目; 5. 尽量使用数据量少的所以; 6. 尽量使用前缀来索引; 7. 删除不再使用或者很少使用的索引。 实践...

    MYSQL索引注意事项及其优化

    1. 普通索引(Index):对指定字段(非主键、外键)建立索引。 2. 唯一索引(Unique Index):特殊的普通索引,索引字段必须唯一。 3. 主键索引(Primary Key Index):数据库的主键。 4. 组合索引(Composite Index...

    MySQL-数据库-索引详解

    ###为经常需要排序、分组、联合操作的字段建立索引 ###为常作为查询条件的字段建立索引 ###限制索引的数目 索引数目不是越多越好,每个索引都占用磁盘空间,索引越多,需要磁盘空间越多。修改表时,对索引的重构...

    mysql面试题,涉及MySQL基础、MySQL索引、MySQL语句 MySQL进阶等方面,适用于初、中级开发人员

    在 MySQL 中,联合索引的建立遵循最左匹配原则,也就是说,索引的建立顺序是从左到右的。例如,在一张表 test 中建立了联合索引(a,b,c),使用下面的 SQL 语句问那些语句用到了索引?根据索引的最左匹配原则,...

    MySQL官方文档优化原则部分

    选择正确的索引类型(如B-Tree、Hash或Full-text)和正确地为列建立索引,可以极大地提升查询速度。复合索引尤其适用于多条件查询,当查询条件包含索引的前导列时,MySQL可以有效地使用它们。 除此之外,还有一些...

    MySQL语句优化的原则

    7. **多表查询的优化**:对于多表查询,应在`JOIN`条件中涉及的字段上建立索引,特别是在`LEFT JOIN`或`RIGHT JOIN`的`ON`子句中。 8. **IN 和 OR 子句的优化**:使用`IN`或`OR`子句时,可能需要创建临时表,这会...

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

    复合索引是指一个索引包含多个列,例如在一个表中有多个列都需要建立索引,那么可以建立复合索引。复合索引遵循最左前缀匹配原则,即在查询时必须从左到右匹配索引的列。 3. 唯一索引 唯一索引是指索引列的值必须...

    分享几道关于MySQL索引的重点面试题

    前言 索引是对数据库中一或多个列值的排序,帮助数据库高效获取数据的数据结构 ...如果我们按照 name 字段来建立索引的话,采用B+树的结构,大概的索引结构如下 如果我们要进行模糊查找,查找name 以“张”开头的所有

    简单了解添加mysql索引的3条原则

    选择性高的列适合建立索引,这意味着该列的值有较高的唯一性。如果一列中大多数行的值都不同,那么这个索引在查询时将更有效。例如,在一个包含身份证号的列上创建索引通常比在一个性别列上创建索引效果更好,因为...

    mysql索引失效.docx MySQL索引失效是指在查询执行过程中,数据库无法有效地使用索引来提高查询性能

    这是因为在建立索引时,存储的是列的原始值,而非经过函数处理后的结果。 **示例**:设有索引的列名为`name`,执行如下查询: ```sql SELECT * FROM users WHERE LOWER(name) = 'john'; ``` 由于使用了`LOWER()`...

Global site tag (gtag.js) - Google Analytics