iT邦幫忙

0

phpMyAdmin index 執行問題

  • 分享至 

  • xImage

各位大大好,
因為資料龐大,各表都有設index方便查詢。但時間久了,有時丟查詢覺得變慢。上去phpMyAdmin查看發現有些表的index沒有隨資料更新。
手動重設之後,查詢速度會明顯提升,落差大概5~10倍左右,所以猜想應該是index的問題。

想問各位有什麼辦法讓index執行準確一點嗎?
有辦法一次將所有表reindex嗎?

謝謝

ckp6250 iT邦好手 1 級 ‧ 2022-07-08 05:07:26 檢舉
dump 出來,再 import 回去,效能提昇最明顥。
犬千賀 iT邦新手 3 級 ‧ 2022-07-11 16:34:16 檢舉
謝謝你的建議 ^-^
因為有跟別的db 同步,且目前測試 DB 有定期再做dump,但import 大概要暫停5~10分鐘,不太適合在線 DB 執行。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2
㊣浩瀚星空㊣
iT邦大神 1 級 ‧ 2022-07-07 12:02:43
最佳解答

如果是用phpmyadmim操作的話。
你只要全選資料表後。做「最佳化資料表」就可以了。但建議最好先做「修復資料表」

但如果想要做自動化處理。
那就得要利用一下排程去下MYSQL命令了。
這裏是常用的指令

//這是針對圖一個表
mysqlcheck -a -c -o -r 資料庫名稱 資料表名稱

//這是針對指定庫所有的表
mysqlcheck -a -c -o -r –databases 資料庫名稱1 資料庫名稱2 資料庫名稱3

//這就全部啦!!
mysqlcheck -a -c -o -r –all-databases

但這裏其實並不是很建議自動處理,最好還是手動處理。
畢竟在修復及優化的過程中,往往會出現不盡如意的事。
自動處理的話,就多就是給你停了。且也有很低的機會,讓你的資料庫停止不運做。
你也不會知道發生啥事。
而且修復優化資料庫的東西。也得盡量在離峰時間處理。
在修復優化過程中,需要很大的效能支援。

早期再做這件事,大多都是會先將資料庫給停止,再處理。

以上給你參考。

犬千賀 iT邦新手 3 級 ‧ 2022-07-11 16:23:23 檢舉

感謝星空大大,會再找時間給db優化 ^-^

我要發表回答

立即登入回答