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

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

  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查看语句。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 4,053评论 0 19
  • 1、引言 数据库设计过程中表、字段等的命名规范也算是设计规范的一部分,不过设计规范更多的是为了确保数据库设计的合理...
    SnowflakeCloud阅读 41,085评论 0 48
  • //我所经历的大数据平台发展史(三):互联网时代 • 上篇http://www.infoq.com/cn/arti...
    葡萄喃喃呓语阅读 51,289评论 10 200
  • 系统架构:主要表述了契合一个环境的系统的基本元素及元素之间关系构成的结构集,在环境中体现出来的基本属性,以及设计与...
    艾尔温阅读 1,103评论 0 50
  • “你认识我的时候我已经是这个样子 是个符合或者不符合你想法的成品 你也无法参与我的成长 不能看到我从不懂事到懂事 ...
    马泽凡阅读 111评论 0 0