MySQLの初期のALTER TABLEの実装は非常にシンプルな実装でした。 新しいテーブル定義で(内部的に)一時テーブルを作成し、そこに既存のデータをコピーして、コピーが終わったら入れ替えます。コピー中は更新をブロックします。
MySQL v5.6 で オンラインDDL がサポートされ、更新がブロックされなくなりました。 また、v8.0 では、INSTANT ADD COLUMN が登場し、カラム追加が一瞬できるようになりました。
このように MySQL の …
[さらに読む]TL;DR
MySQL Parameters というページを公開してたら
@tmtms still love this https://t.co/388NNoxxfr but would be so cool to have group_replication parameters too ;-)
— lefred (@lefred) 2020年7月24日
と言われたんだけど、mysqld --no-defaults --help --verbose
でパラメータ一覧を取得してるんで、プラグインであるグループレプリケーションは組み込まれる前だから値が取れないんだな。
と思ってたら、--plugin-load
というオプションでできることを教えてもらった。
mysqld --plugin-load=group_replication.so …
[さらに読む]MySQL Sever Blog に MySQL Shell 8.0.21 の Dump / Import 機能についてエントリーが投稿されています。 並列化により非常に高速に Dump / Import 出来ることなどが示されてます。非常に強力なツールであることが感じられます。
MySQL Shell Dump & Load part 1: Demo! | MySQL Server Blog
とりあえず動かしてみる
\help util.dumpInstance
で説明が見れます。
threads
や maxRate
オプションでパフォーマンスの調整ができそうです。
$ mysqlsh root@localhost mysqlsh …[さらに読む]
yoku0825 さんが、面白そうなブログを書いていました。 yoku0825.blogspot.com MySQLの auto_increment 列は キーカラムである必要がありますが、このキーは複合キーでも構わない。ただし 複合キーの場合は、InnoDB ではキー指定のうちの1つめのカラムである必要があり、MyISAMなら2つめ以降のカラムでも良い、という違いがあるそうです。 mysql> create table tt1 (c1 integer auto_increment, c2 integer, c3 integer, key(c2, c1, c3)) engine=innodb;…
TL;DR
SELECT table_schema, table_name, column_name,
seq_in_index FROM information_schema.statistics WHERE
(table_schema, table_name, column_name) IN (SELECT
table_schema, table_name, column_name FROM
information_schema.columns WHERE extra LIKE '%auto_increment%')
AND (table_schema, table_name, column_name) NOT IN (SELECT
DISTINCT table_schema, table_name, column_name FROM
information_schema.statistics WHERE seq_in_index = 1);
mysqldump --no-data
で引っこ抜いて
sed 's/MyISAM/InnoDB/'
してテキトーなところにリストアしてみればいいと思うよ
…
[さらに読む]