LoginSignup
18
21

More than 5 years have passed since last update.

開発環境のmysql on dockerが300倍早くなった設定

Last updated at Posted at 2017-11-07

slackグループのmysql-casualに参加されている方からCircleCIのDockerイメージを参考にすると良いと教えていただいたので実際に計測してみました。
ただあくまでも開発環境での設定なので本番では設定しない事をおすすめします。

設定内容

config/my.cnf
[mysqld]
innodb_flush_log_at_trx_commit=2
sync_binlog=0
innodb_use_native_aio=0
docker-compose.yml
version: '2'
services:
  db:
    image: mysql:5.6.36
    environment:
      MYSQL_DATABASE: database_name
      MYSQL_ROOT_PASSWORD: fJ3jf2jfkj
      MYSQL_USER: hoge
      MYSQL_PASSWORD: fJ3jf2jfkj
    volumes:
      - "./config:/etc/mysql/conf.d"
    ports:
      - "3306:3306"

計測結果

計測コマンド

mysqlslap
$ mysqlslap -uroot -pfJ3jf2jfkj -P 3306 -h 127.0.0.1 --auto-generate-sql --iterations=1 --concurrency=1
計測されるSQL
DROP SCHEMA IF EXISTS `mysqlslap`;
CREATE SCHEMA `mysqlslap`;
use mysqlslap;
CREATE TABLE `t1` (intcol1 INT(32) ,charcol1 VARCHAR(128));
INSERT INTO t1 VALUES (1804289383,'mxvtvmC9127qJNm06sGB8R92q2j7vTiiITRDGXM9ZLzkdekbWtmXKwZ2qG1llkRw5m9DHOFilEREk3q7oce8O3BEJC0woJsm6uzFAEynLH2xCsw1KQ1lT4zg9rdxBL');
-- 上記INSERTが×100件
SELECT intcol1,charcol1 FROM t1;
INSERT INTO t1 VALUES (73673339,'BN3152Gza4GW7atxJKACYwJqDbFynLxqc0kh30YTwgz3FktQ43XTrqJ4PQ25frn7kXhfXD8RuzN1j8Rf3y8ugKy6es3IbqPJM6ylCyD6xS7YcQCfHKZxYNvB7yTahm');
SELECT intcol1,charcol1 FROM t1;
INSERT INTO t1 VALUES (1759592334,'3lkoxjtvgLu5xKHSTTtJuGE5F5QqmCcppCTmvFZScRZQgim93gSxwb24gKmIPEzEQStMjQiCu7WapGbkw4ilXch3xRLMhKSzgLDOovSi2qGj6rKvnuYAWDDJgaZDu2');
SELECT intcol1,charcol1 FROM t1;
INSERT INTO t1 VALUES (95275444,'bNIrBDBl81tjzdvuOpQRCXgX37xGtzLKEXBIcE3k7xK7aFtqxC99jqYnpTviK83bf6lGDgsKd4R3KLmHPnI8TqnIKj1gjw7N2sXFZNS2Svyg8cpZN7atxL39w4igsp');
SELECT intcol1,charcol1 FROM t1;
INSERT INTO t1 VALUES (866596855,'naQuzhMt1IrZIJMkbLAKBNNKKK2sCknzI5uHeGAgQuDd5SLgpN0smODyc7qorTo1QaI5qLl97qmCIzl0Mds81x7TxpIoJyqlY0iEDRNKA1PS0AKEn5NhuMAr3KgEIM');
SELECT intcol1,charcol1 FROM t1;
INSERT INTO t1 VALUES (364531492,'qMa5SuKo4M5OM7ldvisSc6WK9rsG9E8sSixocHdgfa5uiiNTGFxkDJ4EAwWC2e4NL1BpAgWiFRcp1zIH6F1BayPdmwphatwnmzdwgzWnQ6SRxmcvtd6JRYwEKdvuWr');
DROP SCHEMA IF EXISTS `mysqlslap`;

before

スクリーンショット 2017-11-08 0.00.21.png

after

スクリーンショット 2017-11-08 0.00.38.png

以上です。

mysqlに関わらず開発環境をスムーズに動作させるためのdockerの設定などがあれば教えてください。

18
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
21