Post view

insoler社群網站正式從MySQL 5.6.41直接升級到MySQL 8.0.20最新版

我在一年前的2019/05/06曾經試著將MySQL Server從相當老舊的MySQL 5.6.41升級到當時的最新版本MySQL 8.0.16。雖然MySQL仍舊有提供老舊版本的更新版MySQL Community Server 5.6.48,但是從MySQL 5.6.41以後就不再支援macOS系統,只有Linux與Windows版本可以下載!

由於一年前的當時不知道為什麼「InnoDB卻需要0.57秒」(這是指執行insoler首頁與相簿首頁的SQL指令),所以在測試MySQL 8.0.16,寫完測試報告以後,就回到老舊的MySQL 5.6.41繼續用到現在。

insoler社群網站升級到MySQL 8.0.16、MyISAM儲存引擎只要0.003秒,InnoDB卻需要0.57秒,竟然慢了150倍!

雖然當時升級失敗,但是我並沒有放棄過升級MySQL 8的計畫!在這一年以來,只要MySQL發表新的8.0.17、8.0.18、8.0.19我都有下載、安裝測試過。但是首次支援macOS Catalina 10.15的MySQL 8.0.19竟然完全無法正常安裝在macOS 10.15上!沒有完成安裝,更不可能正常執行MySQL Server!

在幾天前的2020年4月27日,MySQL終於發表新的更新版MySQL Community Server 8.0.20,我當然會再次下載安裝測試看看。這次發現MySQL 8.0.20終於可以像MySQL 8.0.16一樣,正常安裝在macOS 10.15,也可以正常啟動MySQL資料庫伺服器。

打開phpMyAdmin就可以看到insoler使用的資料庫就是最新的MySQL Community Server 8.0.20。

你還可以點選網頁上的SQL標籤頁面,輸入這個指令:

  • SELECT VERSION() as version;

這樣就可以查詢MySQL目前的版本是8.0.20。

由於MySQL Workbench內部會內建mysql的相同版本的命令列指令程式,所以發表MySQL Community Server 8.0.20的同時也會發表新的MySQL Workbench 8.0.20。不過,這個版本就無法在macOS 10.15上正常執行。只要在MySQL Workbench首頁點選新增連接MySQL伺服器,例如root,就會導致整個MySQL Workbench立即結束!

我只好用修改目前連線帳號、密碼的方式來連接新的MySQL 8.0.20。你可以從Server Status伺服器狀態面板上看到目前使用的就是最新的MySQL Community Server 8.0.20。

在MySQL 8.0.16會遇到「InnoDB需要0.57秒」查詢相簿首頁的SQL指令需要0.5〜0.6秒,更慢150倍的問題,那麼這次升級到最新的MySQL 8.0.20以後,就不會遇到這個問題?事實上當然還是會遇到,而且測試結果完全一樣!

這是我試著重新安裝MySQL 8.0.19所做的測試結果:

你可以看到insoler相簿首頁的資料查詢時間是「0.586秒」!這樣的測試結果當然與MySQL 8.0.16的「InnoDB需要0.57秒」結果完全相同!誤差約0.1〜0.2左右都可以忽略不計,這是因為MySQL伺服器主機並不是只有負責測試程式,也必須同時處理insoler首頁的內容,在多工處理的情況下,0.2秒左右的誤差應該都可以視為相同結果。

但如果是舊的MySQL 5.6.41的話,你可以看到insoler相簿首頁的資料查詢時間只要「0.002秒」!

我想沒人會接受開啟insoler首頁或是相簿首頁,就必須等0.6秒以上!如果能達到「0.002秒」這樣的高速成績,應該沒有使用者會抱怨網頁開啟緩慢、龜速的問題。

但非常不幸的是insoler相簿首頁的資料查詢時間是「0.002秒」這樣的成績必須是在滿足某種條件下,MySQL 5.6.41才能跑出這樣的優異成績!那麼,是什麼樣的條件就可以把「0.586秒」像是魔法一般變成只要「0.002秒」?

更不幸的是,我完全不清楚到底要怎麼做才能讓MySQL 5.6.41爽快、滿意?我只知道,如果發現網站的開啟速度變的異常緩慢的時候,就只好這麼做:

  • 備份匯出整個insoler.sql資料庫
  • 使用MySQL Workbench刪除insoler資料庫
  • 匯入備份好的insoler.sql資料庫
  • 重新啟動MySQL 5.6.41

運氣好的話,重新啟動MySQL 5.6.41幾分鐘以後,就可以看到「0.586秒」變成「0.002秒」的魔法!但如果運氣不好,還是會跑出「0.57秒」這樣的速度,就只好重做以上的動作,再測試看看。

事實上,這1-2年以來,只要遇到問題(並沒有週期性,不一定什麼時候會突然變慢)我一直都是在發現insoelr首頁開啟速度突然變慢以後,默默的做著以上的備份與還原資料庫的動作。

然而,直到最近就算做著已經非常熟練的備份與還原資料庫的動作,也無法讓MySQL 5.6.41跑出「0.002秒」的優異成績,而是幾乎一直變成「0.57秒」「0.58秒」,偶爾可以跑出「0.002秒」。但是我無法讓網頁開啟速度是依賴「運氣」!運氣好的時候就非常快,運氣差的時候,就只好等0.6秒以上...

既然MySQL 5.6.41已經無法展現「0.002秒」的魔法,而MySQL 8.0.20又可以正常安裝在macOS Catalina 10.15.4最新版,也可以穩定的正常運作,那就決定還是升級到MySQL 8.0.20。反正無論是MySQL 5.6.41還是MySQL 8.0.20跑出來的成績都是「0.57秒」「0.58秒」左右,運氣不好的時候還會看到0.6秒、0.8秒的SQL執行速度!

要如何將「0.57秒」「0.58秒」變成「0.002秒」?這只好靠我自己的魔法法術來解決問題!

蘇言霖 2020/05/03 0 1594
Comments
Order by: 
Per page:
 
  • There are no comments yet
Rate
0 votes
Post info
蘇言霖
「超級懶貓級」社群網站站長
2020/05/03 (1547 days ago)
Actions