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
after
以上です。
mysqlに関わらず開発環境をスムーズに動作させるためのdockerの設定などがあれば教えてください。