ページ ツリー
メタデータの末尾にスキップ
メタデータの先頭に移動

 

1. 検証環境

  • スペック

    項目
    性能
    OSCentOS 6.2
    ハイパーバイザVMWare Player
    CPUCore i7 2600k 3.4GHz(1コア)

    Memory

    1GB
    HDD8GB
    (filesystem : ext4)
  • 補足
    • レプリケーションなど未実装
    • DBサーバ 1台のみ
    • 使用しているコアは1コアのみ
    • 設定ファイルは同一(パフォーマンス・チューニングはグローバルバッファの調整のみ)

2. mysqlslapを用いた性能比較(select)

50クライアントから計30万回のSELECT文を実行した結果を比較しました。
検索前提条件として、テーブルには事前に10万レコードを格納し、主キーで検索しています。


コマンド例

[root@localhost ~]# mysqlslap --no-defaults --concurrency=50 --engine=innodb  --auto-generate-sql  --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=key --auto-generate-sql-write-number=100000 --number-of-queries=300000

Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 32.694 seconds
        Minimum number of seconds to run all queries: 32.694 seconds
        Maximum number of seconds to run all queries: 32.694 seconds
        Number of clients running queries: 50
        Average number of queries per client: 6000

 

 

■read(主key使用)

30万レコードの処理時間(秒)

 1回目2回目3回目4回目5回目
Maria DB 5.5.33a32.69432.50232.79632.8332.673
MySQL 5.6.1033.9134.14834.37734.23533.342
MySQL 5.5.3028.59728.8328.64428.9528.348

 

1レコード当たりの処理時間(ミリ秒)

 1回目2回目3回目4回目5回目
Maria DB 5.5.33a0.108980.108340.109320.1094330.10891
MySQL 5.6.100.1130330.1138270.114590.1141170.11114
MySQL 5.5.300.0953230.09610.095480.09650.094493

 

性能比

 1回目2回目3回目4回目5回目
MariaDB/MySQL5.5性能比114%113%114%113%115%
MariaDB/MySQL5.6性能比96%95%95%96%98%
MySQL5.5/MySQL5.6性能比84%84%83%85%85%

 

■比較グラフ

■結果

比較結果はMySQL5.5が最も早く、MySQL5.6が最も低かった。
MySQLはバージョンが上がることで、性能が下がる可能性があることが示された。
また、MariaDBとの比較では5.5より遅く、5.6より速い結果が得られた

このSELECT文のみのベンチマーク結果ではMySQL5.6へのバージョンアップやMariaDBへの入れ替えても効果がないことがわかった。

 

3. mysqlslapを用いた性能比較(insert)

50クライアントから計30万回のinsert文を実行した結果を比較しました。

コマンド例

[root@localhost ~]# mysqlslap --no-defaults --concurrency=50 --engine=innodb  --auto-generate-sql  --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=write --auto-generate-sql-write-number=100000 --number-of-queries=300000

Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 33.088 seconds
        Minimum number of seconds to run all queries: 33.088 seconds
        Maximum number of seconds to run all queries: 33.088 seconds
        Number of clients running queries: 50
        Average number of queries per client: 6000

 

■insert性能比較

30万レコードの処理時間(秒)

 1回目2回目3回目4回目5回目
Maria DB 5.5.33a35.46333.87333.1432.9833.088
MySQL 5.6.1065.02463.14562.60862.00462.828
MySQL 5.5.3043.38742.31242.13242.50242.266

 

1レコード当たりの処理時間(ミリ秒)

 1回目2回目3回目4回目5回目
Maria DB 5.5.33a0.118210.112910.1104670.1099330.110293
MySQL 5.6.100.2167470.2104830.2086930.206680.209427
MySQL 5.5.300.1446230.141040.140440.1416730.140887

 

性能比

 1回目2回目3回目4回目5回目
MariaDB/MySQL5.5性能比82%80%79%78%78%
MariaDB/MySQL5.6性能比55%54%53%53%53%
MySQL5.5/MySQL5.6性能比67%67%67%69%67%

■比較グラフ

 

■結果

30万回insertした結果は、MariaDBに軍配が上がった。
結果からInsertが多いアプリケーションに対してはMySQLよりMariaDBのほうが優れていると思われる。
また、Insert性能比較においても、MySQL5.6はMySQL5.5より低下していることがわかった。

 

4. mysqlslapを用いた性能比較(update)

50クライアントから計30万回のupdate文を実行した結果を比較しました。

コマンド例

[root@localhost ~]# mysqlslap --no-defaults --concurrency=50 --engine=innodb  --auto-generate-sql  --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=update --auto-generate-sql-write-number=100000 --number-of-queries=300000

Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 64.486 seconds
        Minimum number of seconds to run all queries: 64.486 seconds
        Maximum number of seconds to run all queries: 64.486 seconds
        Number of clients running queries: 50
        Average number of queries per client: 6000


■update性能比較

30万レコードの処理時間(秒)

 1回目2回目3回目4回目5回目
Maria DB 5.5.33a64.81964.362.963.83964.486
MySQL 5.6.1083.02580.43482.63283.16983.151
MySQL 5.5.3067.9967.8266.71466.56267.299

 

1レコード当たりの処理時間(ミリ秒)

 1回目2回目3回目4回目5回目
Maria DB 5.5.33a0.2160630.2143330.2096670.2127970.214953
MySQL 5.6.100.276750.2681130.275440.277230.27717
MySQL 5.5.300.2266330.2260670.222380.2218730.22433

 

性能比

 1回目2回目3回目4回目5回目
MariaDB/MySQL5.5性能比95%95%94%96%96%
MariaDB/MySQL5.6性能比78%80%76%77%78%
MySQL5.5/MySQL5.6性能比82%84%81%80%81%

■比較グラフ

■結果

insertと同じくMariaDBが勝る結果になった。
しかし、insertの時と比較し、MySQL5.5とMariaDBの性能差が若干縮まっている。

5. mysqlslapを用いた性能比較(mixed)

50クライアントから計30万回のselect、insert、update文のどれかランダムで実行した結果を比較しました。

 

コマンド例
[root@localhost ~]# mysqlslap --no-defaults --concurrency=50 
--engine=innodb  --auto-generate-sql  
--auto-generate-sql-add-autoincrement 
--auto-generate-sql-load-type=mixed 
--auto-generate-sql-write-number=100000 --number-of-queries=300000
Benchmark
        Running for engine innodb
        Average number of seconds to run all queries: 35.358 seconds
        Minimum number of seconds to run all queries: 35.358 seconds
        Maximum number of seconds to run all queries: 35.358 seconds
        Number of clients running queries: 50
        Average number of queries per client: 6000

 

■update性能比較

30万レコードの処理時間(秒)

 1回目2回目3回目4回目5回目
Maria DB 5.5.33a34.42635.53435.4735.19835.358
MySQL 5.6.1052.47750.85151.32950.91450.888
MySQL 5.5.3037.12536.83837.41937.67337.429

 

1レコード当たりの処理時間(ミリ秒)

 1回目2回目3回目4回目5回目
Maria DB 5.5.33a0.1147530.1184470.1182330.1173270.11786
MySQL 5.6.100.1749230.1695030.1710970.1697130.169627
MySQL 5.5.300.123750.1227930.124730.1255770.124763

 

性能比

 1回目2回目3回目4回目5回目
MariaDB/MySQL5.5性能比93%96%95%93%94%
MariaDB/MySQL5.6性能比66%70%69%69%69%
MySQL5.5/MySQL5.6性能比71%72%73%74%74%

 

■比較グラフ

 

■結果

上記もMariaDBが勝る結果になった。
MariaDBはMySQLを上回っている結果になった。

6. 総評

selectの性能を除けば、Maria DBが速いという結果になった。
参照が多いDBであれば、MySQL5.5が一番速い結果になったため、
参照中心のDBの使い方をするアプリケーションはMySQL5.5を使用するのが望ましいと言える。

しかし、更新系や複合系(mixed)の結果ではMariaDBが全ての性能を上回っているため、MySQLからの移行を検討する材料になると言える。
特に書き込み性能ではMariaDBが上回っているため、更新が多いアプリケーションにて、悩んでいる場合は、移行しても問題無いだろうと考える。

また、上記の結果からMySQL5.6の性能が著しく下がっているため、移行を検討する場合は、性能が下がっても追加された機能の分価値があるか比較する必要があると思われる。

MariaDBはMySQLのブランチとして開発されていたため、同等又は同等以上の性能を発揮する部分が見られていました。
しかし、MySQL5.6からソースコードを大幅に変更しているため、MariaDBと大幅に仕様が違う形になっているそうです。
※MySQL5.6とMySQL5.5の間でも大幅に仕様が違います。

そのため、ただ単純に移行すると予期せぬ出来事が発生する可能性があります。
また、MySQLからMariaDBへ変更する場合、アプリケーションごとに調整が必要がある可能性があります。

  • ラベルがありません
コメントを書く…