今回はSQLiteの速度が速いと言われているので、MariaDBと比較をしてみました。
他のサイトでは、相当速度差が出ているようです。
SQLiteが早かったり、MySQLの方が早かったりなので、本当はどっちなのでしょう・・・
実際にやってみると驚きの結果になりました。
SQLiteとMariaDBを比較してみた
【SQLiteへの登録処理】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | $link = null; try { $link = new SQLite3( "../db/test_db.sqlite" ); $insSql = "INSERT INTO employee_tbl (id, name, gender, salary, notes) VALUES(" ; for ( $i = 1; 10000 >= $i ; $i ++){ $res = $link -> exec ( $insSql . $i . "," . "'TEST NAME_" . $i . "'," . rand(0, 1) . "," . rand(1000000, 10000000) . "," . "''" . ")" ); if (! $res ){ echo "登録に失敗しました。n" ; $link ->close(); exit (); } } $link ->close(); } catch (Exception $ex ) { echo "DBへの接続エラーが発生しました。" . PHP_EOL ; echo $ex ->getTraceAsString(); } |
【MariaDBへの登録処理】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | $dbInfo = parse_ini_file ( './config.ini' ); $link = null; try { $link = mysqli_connect( $dbInfo [ 'URL' ], $dbInfo [ 'USER' ], $dbInfo [ 'PSWD' ]) or dir( 'MariaDBへの接続に失敗しました。' ); $db = mysqli_select_db( $link , $dbInfo [ 'DB' ]) or die ( 'DBの選択に失敗しました' ); $insSql = "INSERT INTO employee_tbl (id, name, gender, salary, notes) VALUES(" ; for ( $i = 1; $i <= 10000; $i ++) { $res = mysqli_query( $link , $insSql . $i . "," . "'TEST NAME_" . $i . "'," . rand(0, 1) . "," . rand(1000000, 10000000) . "," . "''" . ")" ); } mysqli_close( $link ); } catch (Exception $ex ) { echo 'DBへの接続エラーが発生しました。' . PHP_EOL ; echo $ex ->getTraceAsString(); } |
【設定ファイル】
1 2 3 4 | URL=localhost USER=root PSWD=root DB=test_db |
INSERT
1万件データを登録するPHPプログラムを作成し、3回繰り返した結果です。
DB | 1回目 | 2回目 | 3回目 |
---|---|---|---|
SQLite | 61.217s | 61.768s | 62.976s |
MariaDB | 27.388s | 24.483s | 20.659s |
(ー△ー;)エッ、マジ?!!!
と思いました。
いままで、さんざんSQLiteは早いと言っておきながら、2~3倍MariaDBの方が早かったです・・・ゴメンナサイ
UPDATE
1万件データを更新するPHPプログラムを作成し、3回繰り返した結果です。
DB | 1回目 | 2回目 | 3回目 |
---|---|---|---|
SQLite | 72.629s | 65.496s | 60.059s |
MariaDB | 33.099s | 27.683s | 27.336s |
更新についても、同様の結果でした。
大きなシステムで使用するには耐えきれないと思いますが、
通常のアプリケーションで使用するのであれば問題ないと思います。(そう信じています)
SQLが学べる 関連連載リンク
データベースの基礎が学べるSQL基礎講座
SQL基礎 連載
練習問題を通じてSQL理解度アップの人気連載!
SQL練習問題集