台灣最大程式設計社群網站
線上人數
882
 
會員總數:245596
討論主題:189303
歡迎您免費加入會員
討論區列表 >> MySQL >> Mysql 轉為 Mariadb 查詢速度變超慢的.....
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
Mysql 轉為 Mariadb 查詢速度變超慢的.....
價值 : 50 QP  點閱數:346 回應數:3

樓主

joyend
初學者
10 48
1532 46
發送站內信

請問有人有這樣的問題嗎?
我的問題是
原系統 Centos6.5/Apache 2.2.15/php 5.3.3/Mysql 5.1.73
新系統 Centos7.7/Apache 2.4.6/php 5.4.16/Mariadb 5.5.64
約3萬筆的資料在原系統查詢不用2秒,但轉移到新系統3萬筆的資料,在新系統查詢要用約4分鐘的時間
google過有針對 my.cnf 做一些設定,但還是沒用,
然而新系統將 Mariadb 5.5.64 移除改為 Mysql 5.7.28 約3萬筆的資料在新系統查詢速度就正常了.....




搜尋相關Tags的文章: [ Mariadb ] ,
本篇文章發表於2019-10-16 17:02
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
作者回應

joyend
檢舉此回應
看到這篇 親自測試比較下mariadb和mysql的性能
說MariaDB的子查詢速度變慢,然而我的子查詢有5個,不知是否真的是MariaDB的子查詢問題.....
本篇文章回覆於2019-10-16 22:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
如果說你的sql子查尋是應用在條件式內的話,MariaDB確實會比較慢。
因為其處理的方式有些不同。

不過認真來說依照sql語法在條件式內使用子查尋的做法。其實已經是不太適合了。
改一下寫法MariaDB還是快很多。
本篇文章回覆於2019-10-25 04:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

joyend
檢舉此回應
我的原語法如下
$search_sqls ="
select data5.*
from(select data4.*,mcath.mc_name
from(select data3.*,cath.cts_name
from(select data2.*,divi.divi_name
from(select data1.*,account.id_user
from(select * from data where data.del_note='0' and data.date_2 >= '2019-07-01' and data.date_2 <= '2019-09-30' group by today_up_no) as data1,account
where data1.id_number = account.id_number) as data2,divi
where data2.divi_val = divi.divi_num order by data2.date_2 desc) as data3,cath
where data3.cts_val = cath.cts_num) as data4,mcath
where data4.mc_val = mcath.mc_number) as data5";

我有改用 join 不過沒什麼用,花費的時間近4分鐘,比原比的少幾10秒.....
還有更好的語法嗎?

$search_sqls ="
select * from
((((select * from data where data.del_note='0' and data.date_2 >= '2019-07-01' and data.date_2 <= '2019-09-30' group by today_up_no) as data1
inner join account on data1.id_number = account.id_number)
inner join divi on data1.divi_val=divi.divi_num)
inner join cath on data1.cts_val=cath.cts_num)
inner join mcath on data1.mc_val=mcath.mc_number order by data1.date_2 desc

本篇文章回覆於2019-10-29 15:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.