`

关于索引建立的七个能用原则

阅读更多

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

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

 

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

 

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

 

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

 

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

 

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

 

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

分享到:
评论

相关推荐

    索引使用的技术指标和检测

    索引在数据库中占有重要一席,索引用的好坏直接影响到查询数据库的性能,因此对于设计索引,有诸多方面的原则、要求和好的实践建议。例如,不要在属性取值较少的列上建立索引。这一条原则背后所隐含的道理其实就是...

    索引优化原则及Oracle中索引总结

    Oracle索引建立原则  · 确定针对该表的操作是大量的查询操作还是大量的增删改操作。  · 尝试建立索引来帮助特定的查询。检查自己的sql语句,为那些频繁在where子句中出现的字段建立索引。  · where语句中...

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

    3.6 查询条件使用or关键字,其中一个字段没有创建索引,则会导致整个查询语句索引失效; or两边为“>”和“<”范围查询时,索引失效 3.7 两列数据做比较,即便两列都创建了索引,索引也会失效 3.8 查询条件使用不等...

    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索引的重点面试题

    假如我们用类比的方法,数据库中的索引就相当于书籍中的目录一样,当我们想找到书中的摸个知识点,我们可以直接去目录中找而不是在书中每页的找,但是这也抛出了索引的一个缺点,在对数据库修改的时候要修改索引到...

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

    索引定义:是一个单独的,存储在磁盘上的数据库结构,其包含着对数据表里所有记录的引用指针. 数据库索引的设计原则: 为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段上创建索引和创建什么类型的索引...

    MySQL语句优化的原则

    1、使用索引来更快地遍历表。  缺省情况下建立的索引是非群集索引,但有时它并不是最佳的。...用户在表中每加进一个索引,维护索引集合就要做相应的更新工作。  2、在海量查询时尽量少用格式转换。

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

    二叉树聊一聊InnoDB的索引模型(B+树)索引的维护(《新华字典》的目录修改)SQL索引执行过程–回表索引创建技巧–索引覆盖索引创建技巧—最左前缀原则索引下推小结引用交个朋友好吗? 索引的基础理解 索引是数据库...

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

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

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

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

    linception#sharon-notes-archive#索引1

    索引索引的设计原则选择唯一性高的列作为索引,因为索引列的基数越大,索引效果越好为经常作为查询条件、排序、分组和联合操作的字段建立索引限制索引的数目,删除不再使用

    SQL 优化原则

    解决这个问题的办法就是重写order by语句以使用索引,也可以为所使用的列建立另外一个索引,同时应绝对避免在order by子句中使用表达式。 5. NOT  我们在查询时经常在where子句使用一些逻辑表达式,如大于、小于...

    关系型数据库性能体系设计和效率提升.docx

    6.2.2 按照必要性原则建立视图 19 6.3 存储过程、函数、触发器的设计规范 19 6.3.1 关于触发器的设计 19 7 SQL访问规范 20 7.1 尽量不要写复杂的SQL 20 7.2 避免使用SELECT * 20 7.3 INSERT时需写全列名 20 7.4 进行...

    优化数据库的方法.doc

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

    PLSQL程序优化和性能分析方法

    2.5.14 关于索引建立 21 3. PLSQL程序性能问题测试方法 21 3.1 性能问题分析 21 3.2 EXPAIN PLAN分析索引使用 22 3.3 TOPSQL分析 24 3.4 针对性语句搜索 28 3.5 后台存储过程跟踪 29 3.6 性能监控 30 4. 性能测试...

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

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

    SQL语句优化的原则

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

    数据库物理设计(1).docx

    数据库物理设计(1)全文共2页,当前为第1页...若在其上建立索引,则平均起来,每个属性值对应一半的元组,用索引检索,并不能明显加快检索的速度。 时刻怀有一颗虔诚之心,乐于分享。知识才更有意义。 数据库物理设计(1)

    mysql面试题之联合分布

    对列col1、列col2和列col3建一个联合索引 联合索引 test_col1_col2_col3 实际建立了(col1)、(col1,col2)、(col,col2,col3...上面这个查询语句执行时会依照最左前缀匹配原则,检索时会使用索引(col1,col2)进行数据匹配。

    Kepware 建立模型命名规范

    Kepware建立模型对象的命名规范:Channel名称、Device 名称、Tag名称;并在实际工厂建立模型,具有很好的实际应用价值,有指导意义

Global site tag (gtag.js) - Google Analytics