`
jahu
  • 浏览: 60919 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

查询慢之 函数不走索引

 
阅读更多

好吧,有被坑了。

 

     一大早上班,其他人疯急了。数据库严重延迟,一个600秒的查询。严重耽搁运行。

     sql 语句下:

      SELECT * from user where user_id=FLOOR(rand()*10000000);

       作用是  随机得到一个用户。

  

分析

         select FLOOR(rand()*10000000);

         没问题很快。

 

          SELECT * from user where user_id = 1 ,也没问题,

          很快

 

          SELECT * from user where user_id=FLOOR(rand()*10000000);
           

 最后发现,是全表扫描,这个函数不走索引。。头疼了。
随机数放到,应用层生成了。
 
  • 大小: 6.1 KB
分享到:
评论

相关推荐

    MySQL索引原理及慢查询优化1

    MySQL索引原理及慢查询优化是数据库管理中的重要主题,尤其是在高并发、大数据量的互联网环境中,优化查询性能对于系统的整体效能至关重要。MySQL作为广泛使用的开源关系型数据库,其索引机制和查询优化技巧是开发者...

    MySQL索引原理及慢查询优化(2)1

    慢查询优化通常涉及到选择合适的索引,避免全表扫描,并考虑查询的执行计划。对于没有使用到索引的列,或者WHERE子句中存在不等条件或函数操作,都可能导致无法利用索引,从而影响查询速度。此外,过度使用索引也...

    mysql,查询,索引

    4. **索引列不能参与计算**:保持索引列“干净”,避免在索引列上进行函数调用或表达式计算。 5. **尽量扩展索引,不要新建索引**:在已有索引基础上添加新列,而不是创建新的索引。 6. **注意关联字段类型一致**:...

    Oracle 索引

    这使得查询可以基于该函数的结果进行优化,但要注意,更新包含函数索引的列会比没有索引时更慢。 4. **唯一索引**:保证索引键的唯一性,不允许重复的值。这对于主键和唯一约束非常有用,可以防止数据冗余和不一致...

    合理使用索引技巧

    索引是数据库管理系统中不可或缺的一部分,它主要的作用在于提升查询效率。ISAM(Indexed Sequential Access Method)索引结构是IBM提出的一种常见实现方式,被广泛应用于各种数据库产品中。合理使用索引对于优化...

    SQL Server数据库查询速度慢原因及优化方法

     1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)  2、I/O吞吐量小,形成了瓶颈效应。  3、没有创建计算列导致查询不优化。  4、内存不足  5、网络速度慢  6、查询出的数据量过大...

    索引类型FULLTEXT,HASH,BTREE,RTREE,索引优化1

    数据库索引是提升查询效率的关键工具,MySQL 中提供了多种类型的索引,包括 FULLTEXT、HASH、BTREE 和 RTREE。本文主要关注前三者,详细解析它们的原理、存储结构和优缺点。 首先,BTree 索引是最常见的索引类型,...

    Oracle培训 关于索引等详细信息的讲解

    在Oracle数据库中,索引分为B树索引、位图索引、函数索引等多种类型,每种都有其特定的应用场景和优缺点。 二、B树索引 B树索引是最常见的索引类型,适用于全值匹配查询。在Oracle中,B树索引由一个或多个索引块...

    postgresql索引类型区别

    Hash 索引的缺点在于,它们不适用于大于、小于或 BETWEEN 查询,并且在 OLTP 数据库中使用 Hash 索引的表进行 DML 操作时,会增加 CPU 开销和存储消耗。 B-tree 索引 ------------ B-tree 索引是 PostgreSQL 中最...

    解决MySql大数据Like查询慢的问题

    在MySQL数据库中,LIKE查询是常用的模糊匹配方法,但当处理大数据量时,尤其是...结合JAVA模拟LIKE的策略,可以在不改变原有查询逻辑的情况下,显著提高查询效率。在实践中,应根据具体业务场景选择最合适的优化方案。

    处理group by 查询速度太慢的问题 数据量大.doc

    优化 Group By 查询速度的...通过本实例,我们可以总结出一些有价值的经验:在优化 Group By 查询时,需要将聚合函数用到的字段一起设置为联合索引;需要充分测试和分析查询结果;需要遵循一定的思路来优化查询;等等。

    接口响应慢的处理办法-mysql索引不生效情况分析

    ### 接口响应慢的处理办法—MySQL索引不生效情况分析 #### 一、引言 在数据库操作中,索引是提高查询性能的重要工具之一。然而,在实际使用过程中,由于各种原因,索引可能会出现不生效的情况,从而导致查询效率...

    SQL查询慢的十大原因

    如果没有为查询的字段创建索引,或者索引设计不合理,数据库必须进行全表扫描,这将显著增加查询时间。 2. **I/O 吞吐量低**:当磁盘I/O成为系统瓶颈时,读取和写入数据的速度会减慢,从而影响查询速度。优化存储...

    SQLServer 索引查询优化指南

    - 哈希索引:提供快速的等值查找,但不支持范围查询和排序。 - 全文索引:用于文本搜索,通过词法分析和索引关键词来实现模糊匹配。 - 集群索引与非集群索引的比较,以及选择哪种类型的索引更适合特定场景。 3. ...

    数据库文件\数据库查询慢优化方法

    - **查询语句编写技巧**:遵循SQL最佳实践,比如避免在WHERE子句中使用函数,避免在索引列上使用计算。 以上策略可以根据实际情况组合使用,以达到最佳的查询性能。在实际操作中,还应结合监控工具,如SQL Server的...

    oracle索引分析与比较

    Oracle数据库中的索引是提升数据查询效率的关键工具,主要包括B*Tree索引、反向索引、降序索引、位图索引和函数索引五种类型。每种索引都有其特定的适用场景和优缺点。 1. **B*Tree索引**:B*Tree(B树)是最常见和...

    数据库索引

    1. **为什么我的SQL慢**:常见的原因包括没有合适的索引、查询条件中使用了函数、全表扫描等。 2. **如何让自己的SQL写得更快**: - 创建有效的索引,特别是针对频繁查询的列。 - 避免在查询条件中使用函数。 - ...

    深入浅出理解索引结构

    这种方法在等值查询中非常高效,但不适用于范围查询和排序操作,因为哈希索引不保持键的顺序。 3. **位图索引(Bitmap Index)**:位图索引适用于具有较少唯一值的列,如性别或是否已婚等。它为每个可能的值分配一...

    45-MySQL单表2000万数据查询慢解决方案1

    MySQL单表2000万数据查询慢解决方案1 本文主要讨论了如何解决MySQL单表2000万数据查询慢的问题,通过将表分区和使用时间触发器来实现数据的优化。 分区设计 在解决方案中,我们使用的是按照8周将单表分为8个区,...

    oracle数据查询慢如何优化.txt

    本文将从几个方面对Oracle查询调优进行详细的解析,包括但不限于SQL语句优化、索引管理和统计信息收集等关键知识点。 #### 一、SQL语句优化 SQL语句是数据库操作的核心,其编写质量直接影响着查询性能。优化SQL...

Global site tag (gtag.js) - Google Analytics