ablog

不器用で落着きのない技術者のメモ

Aurora MySQL で DDL を実行してみる

準備

  • データをロードする
$ sysbench /usr/share/sysbench/oltp_read_write.lua \
 --db-driver=mysql \
 --table-size=500000 \
 --mysql-host=aurora01.*********.ap-northeast-1.rds.amazonaws.com \
 --mysql-user=awsuser \
 --mysql-password=********* \
 --mysql-db=mydb \
 --db-ps-mode=disable \
 prepare
  • 件数を確認する
mysql> select count(id) from sbtest1;
+-----------+
| count(id) |
+-----------+
|   5000000 |
+-----------+
1 row in set (0.82 sec)

DDL実行

  • カラムを追加する
mysql> alter table sbtest1 add added_col1 char(255);
Query OK, 0 rows affected (53.13 sec)
Records: 0  Duplicates: 0  Warnings: 0
  • デフォルト値のあるカラムを追加する
mysql> alter table sbtest1 add added_col2 char(255) default 'abcdefghijklmnopqrstuvwxyz';
Query OK, 0 rows affected (1 min 9.43 sec)
Records: 0  Duplicates: 0  Warnings: 0
  • テーブル定義を確認する
mysql> desc sbtest1;
+------------+-----------+------+-----+----------------------------+----------------+
| Field      | Type      | Null | Key | Default                    | Extra          |
+------------+-----------+------+-----+----------------------------+----------------+
| id         | int(11)   | NO   | PRI | NULL                       | auto_increment |
| k          | int(11)   | NO   | MUL | 0                          |                |
| c          | char(120) | NO   |     |                            |                |
| pad        | char(60)  | NO   |     |                            |                |
| added_col1 | char(255) | YES  |     | NULL                       |                |
| added_col2 | char(255) | YES  |     | abcdefghijklmnopqrstuvwxyz |                |
+------------+-----------+------+-----+----------------------------+----------------+
6 rows in set (0.00 sec)

DML実行

  • DDL実行中に別のセッションでDMLを実行できることを確認した
mysql> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)

mysql> update sbtest1 set added_col1 = '123' where id = 1;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0

mysql> commit;
Query OK, 0 rows affected (0.01 sec)