zoukankan      html  css  js  c++  java
  • 记录一个数据表联合查询过慢的“小坑”

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

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

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

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

  • 相关阅读:
    24/3=8 睡觉8工作8 8????
    linux上使用redis--宝塔面板
    Ruby--strftime
    JS-页面操作
    JS-确认框
    Rails--bundle exec rake db:migrate
    Jquery--array
    Ruby--hash
    Jquery--string
    Jquery--ajax
  • 原文地址:https://www.cnblogs.com/xujanus/p/4444441.html
Copyright © 2011-2022 走看看