`
hy2012_campus
  • 浏览: 29219 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类
最新评论

索引的设计原则

 
阅读更多

1.  搜索的索引列,不一定是所要选择的列。换句话说,最适合索引的列是出现在 WHERE 子

句中的列,或连接子句中指定的列,而不是出现在 SELECT 关键字后的选择列表中的列。

2.  使用惟一索引。考虑某列中值的分布。对于惟一值的列,索引的效果最好,而具有多个

重复值的列,其索引效果最差。例如,存放年龄的列具有不同值,很容易区分  各 行 。

而用来记录性别的列,只含有“ M”和“F”,则对此列进行索引没有多大用处(不管

搜索哪个值,都会得出大约一半的行)

3.  使用短索引。如果对串列进行索引,应该指定一个前缀长度,只要有可能就应该这样做 。

例如,如果有一个 CHAR(200) 列,如果在前 10 个或 20 个字符内,多数值是惟一的,

那么就不要对整个列进行索引。对前 10 个或 20 个字符进行索引能够节省大量索引空

间,也可能会使查询更快。较小的索引涉及的磁盘 I/O 较少,较短的值比较起来更快。

更为重要的是,对于较短的键值,索引高速缓存中的块能容纳更多的键值,因此,MySQL

也可以在内存中容纳更多的值。这增加  了找到行而不用读取索引中较多块的可能性。

(当然,应该利用一些常识。如仅用列值的第一个字符进行索引是不可能有多大好处的 ,

因为这个索引中不会有许多不 同 的 值 。)

4.  利用最左前缀。在创建 一个 n 列的索引时,实际是创建了 MySQL 可利用的 n 个索引。

多列索引可起几个索引的作用,因为可利用索引中最左边的列集来匹配行。这样的列集

称为最左前缀。(这与索引一个列的前缀不同,索引一个列的前缀是利用该的前 n 个字

符作为索引值。)

5.  不要过度索引。不要以为索引“越多越好”,什么东西都用索引是错的。每个额外的索

引都要占用额外的磁盘空间,并降低写操作的性能,这一点我们前面已经介绍 过。在

修改表的内容时,索引必须进行更新,有时可能需要重构,因此,索引越多,所花的时

间越长。如果有一个索引很少利用或从不使用,那么会不必要地减缓表  的修改速度。

此外,MySQL 在生成一个执行计划时,要考虑各个索引,这也要费时间。创建多余的索

引给查询优化带来了更多的工作。索引太多,也可能会使  MySQL 选择不到所要使用的

最好索引。只保持所需的索引有利于查询优化。如果想给已索引的表增加索引,应该考

虑所要增加的索引是否是现有多列索引的最左 索引。如果是,则就不要费力去增加这

个索引了,因为已经有了。

6.  考虑在列上进行的比较类型。索引可用于“ <”、“ < = ”、“ = ”、“ > =”、“ >

”和 BETWEEN 运算。在模式具有一个直接量前缀时,索引也用于 LIKE 运算。如果只

将某个列用于其他类型的运算时(如 STRCMP( )),对其进行索引没有价值。

分享到:
评论

相关推荐

    数据库索引设计原则.

    oracle数据库索引设计原则. 数据库索引设计原则.

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

    那么索引设计原则又是怎样的? 1.选择唯一性索引 唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录。 例如,学生表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的确定某个学生的信息。...

    MySQL高级课程视频.zip

    MySQL 高级 - 索引 - 索引设计原则12. MySQL 高级 - 视图 - 概述13. - 视图 - 创建及修改视图14. - 查看及删除视图15. MySQL 高级 - 存储过程 - 概述16. 创建调用查询删除语法17. 语法 - 变量18. MySQL 高级 - 语法...

    mysql高级笔记 P1 day01-02. MySQL 高级 - Linux上安装MySQL P2 day01-03. MyS

    MySQL 高级 - 索引 - 索引设计原则 P11 day01-12. MySQL 高级 - 视图 - 概述 P12 day01-13. MySQL 高级 - 视图 - 创建及修改视图 P13 day01-14. MySQL 高级 - 视图 - 查看及删除视图 P14 day01-15. MyS

    oracle数据库编程规范

    8.3 索引设计原则 8.4 完整性设计原则 8.5 触发器 8.6 视图设计 8.7 包设计 9 文档规范 9.1 数据库设计及文档维护 9.2 数据库接口文档 10 开发工具 11、附录1:范式 11.1 第一范式 11.2 第二范式 11.3 第三范式 11.4...

    MySQL高级教程视频

    ├ 第一天视频 │ │ 01.... MySQL 高级 - 索引 - 索引设计原则.avi │ │ 12. MySQL 高级 - 视图 - 概述.avi │ │ 13. MySQL 高级 - 视图 - 创建及修改视图.avi │ │ 14. MySQL 高级 - 视图 - 查看及删

    MySQL高级笔记.zip

    MySQL 高级 - 索引 - 索引设计原则 P11 day01-12. MySQL 高级 - 视图 - 概述 P12 day01-13. MySQL 高级 - 视图 - 创建及修改视图 P13 day01-14. MySQL 高级 - 视图 - 查看及删除视图 ...........

    MySQL高级教程视频.zip

    11.索引 - 索引设计原则 12.视图 - 概述 13.视图 - 创建及修改视图 14.视图 - 查看及删除视图 15.存储过程 - 概述 16.存储过程 - 创建调用查询删除语法 17.存储过程 - 语法 - 变量 18.存储过程 - 语法 - if判断 19....

    202311月最新MySQL-71到精选面试题题及答案涵编程题和存储知识点-20231120.pdf

    索引优化:讨论了如何使用索引来提高查询性能,包括索引类型、索引设计原则等。 事务管理:介绍了事务的概念、事务隔离级别、事务的ACID特性等。 面试编程题:提供了一些常见的MySQL编程题,要求面试者用SQL语句解决...

    数据库系统原理上机实验.doc

    3) 掌握索引设计原则和技巧,能够创建合适的索引以提高数据库查询。 2、实验主要内容 1) 针对SQL Server数据库设计单元组插入、批量数据插入、修改数据和删除数据等SQL语 句。理解和掌握INSERT、UPDATE和DELETE语法...

    第08章_索引的创建与设计原则.pdf

    第08章_索引的创建与设计原则.pdf

    mysql数据库设计原则

    mysql数据库设计原则 索引使用,语句优化等

    2021年MySQL高级教程视频.rar

    11.MySQL高级索引索引设计原则.avi 12.MySQL高级视图概述.avi 13.MySQL高级视图创建及修改视图.avi 14.MySQL高级视图查看及删除视图.avi 15.MySQL高级存储过程概述.avi 16.MySQL高级存储过程创建调用查询删除语法....

    数据库索引设计与优化

    深入学习数据库必读书籍,深入讲解数据库中索引的设计和优化原则

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

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

    1数据库设计文档.doc

    数据库物理设计原则 5 1.1. 数据库环境配置原则 5 1.1.1. 操作系统环境 5 1.1.2. 内存要求 5 1.1.3. 交换区设计 5 1.1.4. 其他 6 1.2. 数据库设计原则 6 1.2.1. 数据库SID 6 1.2.2. 数据库全局名 6 1.2.3. 数据库...

    计算机课程(数据库)-索引设计与优化

    在数据库系统中,查询是最常见和重要的操作之一。然而,当数据量增加和查询复杂度提高时,查询性能可能会受到影响。为了提高查询性能,合理...本文将介绍MySQL中提高查询性能的关键技巧,包括索引的设计原则和优化方法

    mysql索引和执行计划的使用

    MySQL索引的最佳实践和执行计划的使用分析,包括索引的设计原则,SQL语句的优化原则等

    MySql数据库索引详解,索引看这一篇就够了

    7.1 索引的设计原则 7.2 一次查询只能使用一个索引? 7.3 所有的查询语句都能用到索引吗?   推荐书籍《mysql索引漫画》,书籍链接如下: 链接:https://pan.baidu.com/s/1Vh4N_S0pPd9_sYN04cIUsw 提取

Global site tag (gtag.js) - Google Analytics