`
yn2010
  • 浏览: 23691 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

mysql的索引使用不当速度比没加索引还慢

阅读更多
mysql的索引使用不当速度比没加索引还慢,我们举个例子来解释一下。

mysql的索引使用不当速度比没加索引还慢,我们举个例子来解释一下。
下面是我们插入到这个tuangou表的数据:

id      web        city     type
1     拉手网       北京   餐饮美食
2     拉手网       上海   休闲娱乐
3     百分团       天津   餐饮美食
4     拉手网       深圳   网上购物
5     百分团      石家庄  优惠卷票
6     百分团       邯郸   美容保健
..
4999  百分团       重庆   旅游酒店
5000  拉手网       西安   优惠卷票

执行mysql语句:
$sql = "select from tuangou where web='拉手网' and city='上海'";

(1)如果没有加索引,执行时间是:0.0041秒

(2)如果只给web加索引,执行时间:0.0064秒

(3)如果web和city都加上索引,执行时间:0.0007 秒



(2)中虽然加上索引,但查询时间比不加索引用的时间还多。所以我建议大家,需要经常查询的字段都加上索引。



分享到:
评论
4 楼 niumd 2011-06-18  
索引采用B* tree存储。insert、update、delete在B* tree添加节点需要调整B* tree的结构,故会很慢,添加适当。

另外对于查询,最好的索引就是唯一性,一次即可定位,对于重复数据很多的列不合适简建立索引,因为过滤后数据量仍然很大,先走索引在走表,故很慢。
3 楼 antonia 2011-06-16  
额。。这么明显的错误。。。加错了
2 楼 bigc2000 2011-06-13  
是你加错了。很明显的初级错误
1 楼 魔力猫咪 2011-06-13  
web字段的可选择性非常差,使用索引比全表还慢。因为要先跑一遍索引。然后根据没消除几个记录的索引再跑差不多半个全表,结果还不如直接全表。这里添加(web,city)复合索引比较合适。
是否使用索引,如何使用索引。要根据你查询的条件、返回结果、数据分布、具体数据库来综合考虑。而且每增加一个索引,都会对INSERT、UPDATE、DELETE的效率产生影响,所以并不是越多越好。

相关推荐

    mysql中索引使用不当速度比没加索引还慢的测试

    然而,正如题目所描述的情况,索引的使用如果不当,反而可能导致查询效率降低,甚至比没有索引时更慢。下面我们将详细讨论这个问题,并通过例子来阐述。 首先,让我们分析给定的例子。在这个名为`tuangou`的表中,...

    MySQL 索引最佳实践

    本文将深入探讨MySQL索引的最佳实践,旨在为开发者和数据库管理员提供实用指南。 ### 理解索引的重要性 索引的存在主要是为了加速数据库中的数据访问速度。在没有索引的情况下,数据库必须遍历整个表来查找特定的...

    mysql索引与树结构(索引简介、索引用法详解、B-Tree索引结构、索引导致的问题).docx

    - **修改索引**: MySQL不直接支持修改索引,需先删除再重建。 - **查询索引** - **基础命令**: `EXPLAIN SELECT * FROM table_name WHERE condition;` - **参数解释**: - **id**: 指示查询的执行顺序。 - **...

    mysql,查询,索引

    ### MySQL索引原理及其应用 #### 一、MySQL索引目的 索引的主要目的在于提高查询效率,通过类似于字典中的快速查找方式,帮助快速定位到所需数据。在没有索引的情况下,查找特定数据可能需要全表扫描,这将极大地...

    Mysql优化选择最佳索引的方法共2页.pdf.zip

    通过分析,可以找出未使用索引或者索引使用不当的查询,从而进行优化。 6. **避免在索引列上使用函数**:函数操作会阻止MySQL使用索引,比如在WHERE子句中对索引列进行计算。应尽量将计算移到查询之外,或者选择对...

    mysql-常见问题,索引优化

    MySQL数据库在日常使用中会遇到各种问题,其中索引优化是提升数据库性能的关键环节。本文将探讨MySQL的一些常见问题,特别是与索引相关的优化策略。 1. 关于MySQL `count(distinct)` 的逻辑bug 在执行`count...

    MySQL数据库索引失效的10种场景.zip

    MySQL数据库在数据处理中起着至关重要的作用,其性能很大程度上取决于索引的高效使用。然而,有时我们可能会遇到索引失效的情况,这可能导致查询性能急剧下降。本篇将详细探讨10种可能导致MySQL数据库索引失效的常见...

    mysql索引及性能优化 (1).pdf

    ### MySQL索引及性能优化知识点解析 #### 一、MySQL性能下降的表现与原因 1. **性能下降的表现**: - 执行时间显著延长。 - 用户操作等待时间增加。 - 查询响应时间不稳定。 2. **性能下降的原因**: - **...

    mysql慢查询工具Anemometer

    5. **索引分析**:指出可能缺少索引或索引使用不当的查询。 根据这些信息,你可以采取以下优化措施: 1. **改进查询语句**:针对执行时间长的查询进行优化,可能需要重新设计查询结构,减少JOIN操作,或者使用更...

    基于MySQL数据库的索引优化研究.pdf

    索引是提升查询速度的重要手段,但不当的索引会增加维护成本和存储开销。 1. **合适地创建索引**:分析查询语句,确定经常用于WHERE子句的列,为其创建索引。主键和外键自动创建索引,但非主键列的索引需谨慎考虑。 ...

    行业-83案例实战:陌生人社交APP的MySQL索引设计实战(3).rar

    在本案例实战中,我们将深入探讨陌生人社交APP的MySQL索引设计,这对于我们理解如何优化数据库性能至关重要。MySQL是广泛应用于互联网行业的关系型数据库管理系统,尤其在处理大规模用户交互的数据时,良好的索引...

    Mysql索引会失效的几种情况分析

    MySQL索引是数据库管理系统优化查询性能的关键工具,但有时我们可能会发现即使创建了索引,查询仍然很慢。本文将深入探讨导致MySQL索引失效的一些常见情况,并提供相应的解决策略。 1. **OR条件的使用**:在查询...

    Mysql如何适当的添加索引介绍

    然而,过度使用或不当使用索引可能会导致插入、更新和删除操作变慢,因为每次这些操作都需要维护索引。 首先,我们来看看几种常见的MySQL索引类型: 1. **主键索引**:每个表只能有一个主键索引,它确保了字段的...

    MySQL的基本介绍及优化实践.pptx

    - **索引使用不当**:例如未正确利用索引或者索引选择不合适。 - **查询语句编写不合理**:如使用了过多的子查询或连接操作。 - **硬件资源限制**:CPU、内存、磁盘I/O等资源不足。 - **配置参数不合理**:如...

    MySQL慢查询相关知识

    通过分析输出结果中的不同列(如`type`、`possible_keys`、`key`等),我们可以识别出索引缺失或使用不当等问题,并据此采取相应的优化措施。 #### 五、优化策略 根据上述步骤中收集到的信息,可以采取多种策略来...

    MYSQL速度慢的问题 记录数据库语句

    MySQL数据库在运行过程中可能会出现速度变慢的问题,这通常是由于各种因素导致的,例如不当的索引使用、复杂的查询语句、数据量过大或者数据库配置不合理等。为了解决这个问题,我们需要对数据库进行性能分析,特别...

Global site tag (gtag.js) - Google Analytics