日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Mysql本地执行快,测试也快,生产贼慢(已解决)

發布時間:2023/12/29 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mysql本地执行快,测试也快,生产贼慢(已解决) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引出問題

一個很簡單的sql,生產環境查詢竟然要這么久


我本地只需要0.2s,測試環境也只需要不到1秒鐘。
這差距也太大了。
執行的sql如下:

select date_day,detain_flag,reserve_flag,into_type,out_type,usable_flag from table where line_no='11' and date_day BETWEEN '2021-01' nd '2022-02' and is_del=0 AND type=1 ;

前置說明:
其中 line_no、date_day 是加了聯合索引的,類型都是varchar。
detain_flag,reserve_flag,into_type,out_type,usable_flag類型為int(1)和varchar(30)
目前是6臺機器上有mysql集群。
表中有50萬數據,符合條件是3萬,表數據大小是160M。


對比

如果只執行

select date_day from table where line_no='11' and date_day BETWEEN '2021-01' nd '2022-02';

是很快的。


但是執行

select date_day,detain_flag,reserve_flag,into_type,out_type,usable_flag from plan_train_use_schedule where line_no='11' and date_day BETWEEN '2021-05' and '2022-03';

后依然很慢,
差別就是返回的字段中多了幾個。


然后又這樣執行

select `code` from plan_train_use_schedule where line_no='13' and date_day BETWEEN '2021-05' and '2022-03' and is_del=0 AND type=1;

后依然很慢,
差別就是查詢的條件中字段中多了幾個。


我的猜想

我猜是因為回表導致的慢,但是這特娘的也太慢了吧,其他庫有個600萬數據的表,是很快的。我這個庫有毒?

這兩個命令能查出如下圖的數據,需要先執行你的sql,然后下面的命令依次執行
show profiles;
show profile for query 26;

我現在懷疑是跟緩沖池大小有關,因為本地跟測試相對來講沒人用,所以默認的125M內存夠用了,但是生產環境一直在用,所以發生回表操作的話需要把數據重新刷進去的,所以導致慢。但是需要重啟mysql,暫且沒試,查詢的命令是:

show variables like ‘%query_cache%’;
show variables like ‘innodb_buffer_pool%’;

如圖,Mysql的配置都是默認的。感覺有點坑爹。

我想改下試試。但是需要重啟,不好操作。


分割線 2022年1月12日13:25:20

以下操作可能需要參考這篇文章:
win10查找Mysql5.6版本的配置文件my.ini并修改innodb_buffer_pool_size

雖然生產不好操作,但是我自己電腦可以操作哇。

我查了下自己電腦Mysql的配置

show variables like ‘innodb_buffer_pool%’;

結果為

innodb_buffer_pool_instances = 8
innodb_buffer_pool_size = 125M

此時查詢速度很快的,0.2秒,配置為125M

然后我改了下,查詢速度需要20+秒,配置為6M

然后我又改了下,變成2G,查詢只要0.01秒,配置為2G

可以看到明顯的差別。

只等去生產環境試一下看是否解決問題了。


完美解決,吼吼 2022年1月12日14:23:51

此時生產環境一臺機器配置如下

執行sql查詢時間為0.4秒,不吹牛逼,這特么的提升了100倍是有的


序1

2022年9月26日17:08:09

今天遇到的問題,使用navcat 查詢很慢, 但是登錄到服務器去執行同樣的sql是正常的。懷疑是網絡問題造成的。


總結

以上是生活随笔為你收集整理的Mysql本地执行快,测试也快,生产贼慢(已解决)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。