如何解决数据库查询耗费时间的问题?

2017-06-02  本文已影响11人  NeXTCDO

最近公司获取资产列表的接口奇慢无比,架构师给出如下解决办法思路

  1. 把数据库全缓存在redis中
  2. 给数据库建索引index
  3. 存储介质换成固态硬盘
  4. 抓取django查询数据库的sql语句。

其中从第四条开始着手的时候,遇到django使用django.core.serializer来序列化,无法抓取这部分的sql。于是从MySQL数据库这端来抓取。打开MySQL引擎的配置文件(/etc/mysql/my.cnf ),把general_log_file= /var/log/mysql/mysql.loggeneral_log=1参数前面的注释去掉,然后重启数据库服务(service mysql restart)。查询后进入 /var/log/mysql/mysql.log查看语句。

最终原因找到,是切片工作没有在序列化之前完成,导致每次序列化是进行全表扫描。

上一篇 下一篇

猜你喜欢

热点阅读