MySQL引數對比淺析(r11筆記第97天)

jeanron100發表於2017-03-08

  今天按照計劃,決定得總結下MySQL的引數了,說來想來,立即就做。

大體算了下,手頭的環境主要還是使用了Percona分支,官方的相對較少,就暫且按照Percona的版本來統計引數的情況,可能和官方的會有一些出入。

   資料版本會有一個較大的跨度,從5.0到5.7都有,這也能夠間接反映出一個系統的變遷過程。

  涉及的資料庫版本如下,基本版本就是5.0, 5.5, 5.6, 5.7

5.0.67-percona-highperf-log

5.5.33-31.1-log

5.6.14-rel62.0-log

5.6.14-56-log   0.91

5.6.16-64.2-56-log

5.6.23-72.1-log 

5.7.13-6-log

檢視的引數的情況主要是依據show variables的結果,這裡我們分別統計information_schema.session_variables和global_variables,MySQL的變數其實是分為三類的,此處參考了丁奇大師的描述。(http://dinglin.iteye.com/blog/1846854)

     session_only是僅執行緒級別意義的,比如 last_insert_id

    global_only 是僅全域性級別有意義的,比如 sync_master_info

    both則是同時有全域性和執行緒兩個狀態。



統計了一下,得到的一個基本列表如下,尤其需要注意的是5.0的版本因為information_schema下的檢視著實有限,還沒有session_variables和global_variables,所以就暫時使用show variables的輸出代替。一個整體的情況如下:


資料庫版本

Session_variables

Global_variables

5.0.67-percona-highperf-log

245*

245*

5.5.33-31.1-log

392

404

5.6.14-rel62.0-log

490

476

5.6.14-56-log  

490

476

5.6.16-64.2-56-log

496

482

5.6.23-72.1-log 

505

491

5.7.13-6-log

559

544

 把上面的資料整理出一個統計圖如下:

 
   透過這個統計圖可以清晰的看到在5.0到5.5版本的過程中,總體有近一倍的引數提升,有近150個新增引數,而在5.5到5.6的過程中,新增引數有近100個,而在5.6的補丁版本中,加入了近10個左右的引數,然後到了5.7有近50多個新增引數。

  MySQL的引數和Oracle相比,數量要少了很大,而且沒有隱含引數的說法。這一點要透明許多,這個引數量和Oracle是差不多的。

Oracle我們取了幾個大版本的樣本,開放的引數個數竟然和MySQL有很相似的量級。

    在引數背後就是兩種截然不同的風格和文化,Oracle是提供強大,豐富的引數定製功能,就是所說的隱含引數,相反對於internal的部分,大門已經漸漸關閉。而MySQL反之,你如果想看點internal的東西,連結都有,https://dev.mysql.com/doc/internals/en/
   商業和開源之爭,永無止境,而且它們還是屬於同一個公司。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-2134971/,如需轉載,請註明出處,否則將追究法律責任。

相關文章