`
xitong
  • 浏览: 6195513 次
文章分类
社区版块
存档分类
最新评论

mysql 建立索引的原则

 
阅读更多

索引查询是数据库中重要的记录查询方法,要不要进入索引以及在那些字段上建立索引都要和实际数据库系统的查询要求结合来考虑,下面给出实际中的一些通用的原则:

1. 在经常用作过滤器的字段上建立索引;

2. 在SQL语句中经常进行GROUP BY、ORDER BY的字段上建立索引;

3. 在不同值较少的字段上不必要建立索引,如性别字段;

4. 对于经常存取的列避免建立索引;

5. 用于联接的列(主健/外健)上建立索引;

6. 在经常存取的多个列上建立复合索引,但要注意复合索引的建立顺序要按照使用的频度来确定;

7. 缺省情况下建立的是非簇集索引,但在以下情况下最好考虑簇集索引,如:含有有限数目(不是很少)唯一的列;进行大范围的查询;充分的利用索引可以减少表扫描I/0的次数,有效的避免对整表的搜索。当然合理的索引要建立在对各种查询的分析和预测中,也取决于DBA的所设计的数据库结构。

分享到:
评论

相关推荐

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

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

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

    在mysql建立联合索引时会遵循最左前缀匹配的原则,即最左优先,在检索数据时从联合索引的最左边开始匹配,示例: 对列col1、列col2和列col3建一个联合索引 KEY test_col1_col2_col3 on test(col1,col2,col3); 联合...

    MySQL语句优化的原则

     缺省情况下建立的索引是非群集索引,但有时它并不是最佳的。在非群集索引下,数据在物理上随机存放在数据页上。合理的索引设计要建立在对各种查询的分析和预测上。一般来说:  a.有大量重复值、且经常有范围查询...

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

    索引定义:是一个单独的,存储在磁盘上的数据库结构,其包含着对数据表里所有记录的引用指针. ...2.为经常需要排序、分组和联合操作的字段建立索引 经常需要ORDER BY、GROUP BY、DISTINCT和UNION等操作的字

    Mysql面试过关!(详解:索引+常用引擎+常见问题+sql调优)

    2、查看MySQL中建立的索引是否生效 3、索引失效场景(补充:以下在实际应用中并不会一定导致索引失效,基于mysql不同版本的优化规则) 3.1 在联合索引的场景下,查询条件不满足最左匹配原则 3.2 索引列参与了运算,...

    MySQL数据库优化技术之索引使用技巧总结

    本文实例总结了MySQL数据库优化技术的索引用法。分享给大家供大家参考,具体如下: 这里紧接上一篇《MySQL数据库优化技术之配置技巧总结》,进一步分析索引优化的技巧: (七)表的优化 ...(八)建立索引原则

    MySQL只学有用的–MYSQL索引原理及创建技巧

    MySQL只学有用的–MYSQL索引原理及使用索引的基础理解索引的常见模型(字典目录的编写形式)1. 哈希表2. 有序数组3. 二叉树聊一聊InnoDB的索引模型(B+树)索引的维护(《新华字典》的目录修改)SQL索引执行过程–...

    【MySQL进阶学习】优化索引与分区表

    文章目录优化索引为索引列选择合适的数据类型一般原则建立索引,但是不走索引的情况表分区表分区的功能范围分区(Range Partition列表分区(List Partition)哈希分区(Hash Partition)复合分区 优化索引 MySQL中,...

    MYSQL培训经典教程(共两部分) 1/2

    MYSQL 服务器交互作用 142 6.2.1锁定表的的方法 142 6.2.2 检查表的锁定协议 143 6.2.3 修复表的锁定协议 143 6.2.4 总结 144 6.3日志文件维护 144 6.3.1如何使用新的更新日志 144 6.3.2如何...

    MySQL优化笔记-整理版.doc

    比如:”建立合理索引”(什么样的索引合理?) “分表分库”(用什么策略分表分库?) “主从分离”(用什么中间件?) 并没有从细化到定量的层面去分析. 如qps提高了%N? 有没有减少文件排序?语句的扫描行数减少了多少? 没有...

    如何设计高效合理的MySQL查询语句

    ●在经常进行连接,但是没有指定为外键的列上建立索引,而不经常连接的字段则由优化器自动生成索引。 ●在频繁进行排序或分组(即进行group by或order by操作)的列上建立索引。 ●在条件表达式中经常用到的不同值较多...

    PHP和MySQL Web开发第4版pdf以及源码

    《php和mysql web开发(原书第4版)》:开发人员专业技术丛书。 目录 读者反馈 译者序 前言 作者简介 第一篇 使用PHP 第1章 PHP快速入门教程 1.1 开始之前:了解PHP 1.2 创建一个示例应用:Bob汽车零部件商店 ...

    PHP和MySQL WEB开发(第4版)

    12.1.4 访问控制:MySQL如何使用Grant表 12.1.5 更新权限:修改什么时候生效 12.2 提高MySQL数据库的安全性 12.2.1 从操作系统角度来保护MySQL 12.2.2 密码 12.2.3 用户权限 12.2.4 Web问题 12.3 获取更多关于数据库...

    MySQL性能优化

    首先,在数据库设计的时候,要能够充分的利用索引带来的性能提升,至于如何建立索引,建立什么样的索引,在哪些字段上建立索引,上面已经讲的很清楚了,这里不在赘述。另外就是设计数据库的原则就是尽可能少的进行...

    MySQL优化笔记

    比如:”建立合理索引”(什么样的索引合理?) “分表分库”(用什么策略分表分库?) “主从分离”(用什么中间件?) 并没有从细化到定量的层面去分析. 如qps提高了%N? 有没有减少文件排序?语句的扫描行数减少了多少?

    SQL 如何建立索引来加快数据库的查询

    索引的设计原则5. 创建索引5.1. 自动创建索引5.2. 手动创建索引5.2.1. 创建表时创建索引5.2.2. 在已经存在的表上创建索引5.2.2.1. alter语句创建索引5.2.2.2. create语句创建索引6. 查看索引6.1. explain关键字查看...

    mysql数据库优化需要遵守的原则

    1、使用索引来更快地遍历表 缺省情况下建立的索引是非群集索引,但有时它并不是最佳的。在非群集索引下,数据在物理上随机存放在数据页上。合理的索引设计要建立在对各种查询的分析和预测上。一般来说: a.有大量...

    mysql数据库高级,mysql优化.rar

    索引可以加速数据检索,而外键可以建立表之间的关联关系,保证数据的完整性和一致性。 第一范式(1NF):确保每个数据字段都是原子的,即不可再分割。 第二范式(2NF):通过将非主键字段与主键字段直接关联,消除...

    MYSQL培训经典教程(共两部分) 2/2

    MYSQL 服务器交互作用 142 6.2.1锁定表的的方法 142 6.2.2 检查表的锁定协议 143 6.2.3 修复表的锁定协议 143 6.2.4 总结 144 6.3日志文件维护 144 6.3.1如何使用新的更新日志 144 6.3.2如何...

Global site tag (gtag.js) - Google Analytics