最近公司獲取資產(chǎn)列表的接口奇慢無比,架構(gòu)師給出如下解決辦法思路
- 把數(shù)據(jù)庫全緩存在redis中
- 給數(shù)據(jù)庫建索引index
- 存儲(chǔ)介質(zhì)換成固態(tài)硬盤
- 抓取django查詢數(shù)據(jù)庫的sql語句蒂破。
其中從第四條開始著手的時(shí)候猿妈,遇到django使用django.core.serializer來序列化肢藐,無法抓取這部分的sql故河。于是從MySQL數(shù)據(jù)庫這端來抓取。打開MySQL引擎的配置文件(/etc/mysql/my.cnf
)吆豹,把general_log_file= /var/log/mysql/mysql.log
和general_log=1
參數(shù)前面的注釋去掉鱼的,然后重啟數(shù)據(jù)庫服務(wù)(service mysql restart
)理盆。查詢后進(jìn)入 /var/log/mysql/mysql.log
查看語句。
最終原因找到凑阶,是切片工作沒有在序列化之前完成猿规,導(dǎo)致每次序列化是進(jìn)行全表掃描。