• 记录一个数据表联合查询过慢的“小坑”


      之前给同事开发了一个功能模块,主要是一些记录的查询和录入。过了一个月同事来找我,说发现这个功能模块打开很慢,一查数据库发现,原来是我当初写的SQL有问题,left join了一张主要数据表,而刚好关联的那个字段又没加索引,导致查询异常缓慢。线上立刻加了索引,分分钟搞定。但是回头一想,为什么这么简单功能出错了,之前其它几个模块都没事?整理了下思绪发现有以下几点:

      1.主要功能模块之前的联合查询,一般使用主键来关联,因为本身就是索引,所以查询效率比较高。而这次查询刚好是一个后来增加的字段,忘记加索引了。

      2.其它有些关联查询,虽然查询的表的字段也不是主键,但是数据本身量不大(比如后台用户表),因此也没有太大的问题。但是这次的模块虽然功能简单,但是录入的数据量不少,几百上千条数据下去,效率立马直线下降。

      3.本次的模块开发,因为比较简单,时间上又比较冲忙,考虑的不够周全,应该考虑关联的表数据大小和业务发展,在数据库里把该做的优化给做了,这样才不会造成功能模块的查询问题。

  • 相关阅读:
    python3安装crypto出错,及解决方法
    php中的引用
    算法
    HTTP协议
    jdk 1.8 InvocationHandler 中文注释
    Java实现多线程的几种方法
    shell编写显示ps相关脚本
    逆波兰表达式求值(后序表达式)
    155. 最小栈(leetcode简单题)
    字符串逆序
  • 原文地址:https://www.cnblogs.com/xujanus/p/4444441.html
Copyright © 2020-2023  润新知