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

MySql索引优化

阅读更多
在列上创建索引可以优化查询的速度,但缺点是减慢写入数据的速度。
  创建索引的优点:
  第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
  第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
  第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
  第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
  第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。
  索引的缺点:
  第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。
  第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间。
  第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。
  在哪些列上建索引:
  在经常需要搜索的列上,可以加快搜索的速度;
  在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构;
  在经常用在连接的列上,这 些列主要是一些外键,可以加快连接的速度;
  在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;
  在经常需要排序的列上创 建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;
  在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。
  哪些列不应该建索引:
  第一,对于在查询中很少使用或者参考的列不应该创建索引。这是因为,既然这些列很少使用到,因此有索引或者无索引,并不能提高查询速度。相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。
  第二,对于只有很少数据值的列也不应该增加索引。这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大。增加索引,并不能明显加快检索速度。
  第三,对于定义为varchar,text, image和bit数据类型的列不应该增加索引。这是因为,这些列的数据量要么相当大,要么取值很少。
  第四,当修改性能远远大于检索性能时,不应该创建索引。这是因为,修改性能和检索性能是互相矛盾的。当增加索引时,会提高检索性能,但是会降低修改性能。当减少索引时,会提高修改性能,降低检索性能。因此,当修改性能远远大于检索性能时,不应该创建索引。
分享到:
评论

相关推荐

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

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

    MySQL索引优化课件

    MySQL索引优化是数据库性能提升的关键技术之一,尤其在处理大量数据时,高效索引能够显著加快查询速度,降低服务器负载。本课件主要聚焦于MySQL数据库的索引原理、优化策略以及相关存储过程和触发器的应用。 首先,...

    mysql索引优化分享

    关于mysql索引一些优化介绍与创建原则,还有对order by排序的算法的介绍等等

    Mysql索引优化案例.pdf

    Mysql索引优化案例 在对数据库进行操作时,尤其是在处理包含大量数据的表时,查询的性能问题是一个常见且重要的话题。在实际工作中,对于Mysql数据库进行索引优化是提高查询效率、减少查询时间的重要手段。本案例将...

    Mysql索引优化解决方案.doc

    "Mysql索引优化解决方案" MySQL索引是帮助MySQL高效获取数据的数据结构。MySQL在存储数据之外,还维护着满足特定查找算法的数据结构,这些数据结构以某种引用(指向)表中的数据,这样我们就可以通过数据结构上实现...

    mysql索引优化.xmind

    mysql索引优化思维导图

    mysql的索引优化

    ### MySQL的索引优化 #### 一、索引的基本概念 索引是在数据库表中用于提高数据检索效率的重要工具。简单来说,索引就像是图书的目录页,可以帮助用户快速定位到所需的信息,而无需逐页查找。对于MySQL而言,所有...

    mysql索引优化深入1

    MySQL索引优化是数据库性能提升的关键之一。在深入理解索引优化的过程中,我们需要关注几个核心概念,如索引类型、键长度(key_len)、参考值(ref)以及全表扫描(type=ALL)和文件排序(Using filesort)。 首先...

    Mysql索引优化实战.zip

    本资料“Mysql索引优化实战”旨在深入探讨如何通过有效的索引策略提升MySQL数据库的查询性能。 首先,我们需要理解索引的基本概念。在数据库中,索引就像书的目录,它能帮助数据库系统快速定位到数据,而无需遍历...

    mysql索引优化.rar

    本资料包"mysql索引优化.rar"聚焦于MySQL的索引优化,旨在帮助你理解和掌握如何有效利用索引来提高数据库的运行效率。以下将详细介绍关于MySQL索引的知识点: 1. **索引类型** - **B-Tree索引**:最常见的索引类型...

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

    在“04-VIP-Mysql索引优化实战一”这个主题中,我们将深入探讨MySQL的索引原理、常见问题以及优化策略。 首先,了解索引的基本概念至关重要。索引是一种特殊的数据结构,用于加速数据检索。在MySQL中,B-Tree是最...

    mysql索引优化学习讲义以及示例

    【MySQL索引优化详解】 MySQL索引优化是提升数据库性能的关键环节,通过合理设计和使用索引,可以显著加快查询速度,减少数据访问的时间。在MySQL中,索引是一种特殊的数据结构,允许数据库快速找到存储在表中的...

    MYSQL索引优化.docx

    MySQL索引优化是提高数据库查询效率的关键,尤其在大数据量的场景下,合理地创建和使用索引可以显著提升查询速度。本文档主要探讨了如何选择适合的数据类型、选择合适的标识符以及对索引的基本原理和类型进行了介绍...

    mysql索引优化方案技术分享

    mysql索引的优化方案技术分享,珍贵资料收藏下

    mysql索引优化

    mysql索引优化

    VIP-mysql索引优化实战一.pdf

    ### MySQL索引优化实战知识点详解 #### 一、创建示例表 首先,我们通过一个具体的例子来了解MySQL中的索引及其优化方法。在给定的内容中,展示了一个名为`employees`的表的创建语句: ```sql CREATE TABLE `...

    VIP-mysql索引优化实战一(1)1

    本文将围绕“VIP-mysql索引优化实战一(1)1”这个主题,结合给出的示例表`employees`,讨论如何选择合适的索引以及MySQL如何决定使用哪个索引。 首先,我们来看创建的`employees`表结构,包含`id`(主键)、`name`、...

Global site tag (gtag.js) - Google Analytics