質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

Q&A

解決済

2回答

2023閲覧

MariaDB10.1でONLINEカラム追加

infrataro

総合スコア173

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

0グッド

0クリップ

投稿2015/12/02 14:01

MySQL5.6ではALTER TABLEによるカラム追加がオンライン(INSERTやUPDATE可能)と
公式のリファレンスにも書かれていたのですがMariaDB10.1系はどうなんでしょうか。

https://mariadb.org/をさまよってみても見つからなかったため、
ご存知の方がいらっしゃいましたらご教示ください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

以下のリンク
https://mariadb.com/kb/en/mariadb/alter-table/

In MariaDB 5.3, you can use the ALTER ONLINE TABLE to ensure that your ALTER TABLE is instant;

および

Online ALTER TABLE also works for partitioned tables since MariaDB 10.0.11,

という記述がありますので、
通常のテーブルに対しては5.3から、パーティショニングされたテーブルに対しては10.0.11から使用できるようです。

ただし、すべてのALTER TABLE文で使えるわけではないようです。

同ページに、以下のような記述もあるからです。

Over time, more operations have been made possible without a full copy. Here is a list of the actions that can be performed without having to copy the table:
・Changing a column name
・Changing display length of a integer like INT(2) -> INT(3)
・Changing a table comment
・Adding a new enum option last to a list
・Renaming a table

上のリストに無い操作、例えばカラムの追加などには対応していないようです。

投稿2015/12/02 18:10

KiyoshiMotoki

総合スコア4791

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

infrataro

2015/12/03 09:38

ご確認ありがとうございます。 こちらで実験してみたところカラムの追加中の更新ができたので もう少しドキュメントを読み込むしかないようです。。
KiyoshiMotoki

2015/12/03 09:52

circle2net様、ご報告ありがとうございます。 > こちらで実験してみたところカラムの追加中の更新ができたので 何と、できてしまいましたか、、w 後出しで恐縮ですが、ご紹介させていただいたリンクに > Over time, more operations have been made possible without a full copy.  (時間が経つにつれ、より多くの操作が完全コピーせずに可能になります) とありますので、もしかしたら10.1では対応しているのかもしれませんね。 > もう少しドキュメントを読み込むしかないようです。 バージョン10.1系のリリースノートやチェンジログに、何かヒントがあるかもしれません。 https://mariadb.com/kb/en/mariadb/what-is-mariadb-101/
infrataro

2015/12/08 03:08

ご連絡が遅くなりました。 多数のヒントありがとうございます。 遅ればせながらBAとさせていただきます。
guest

0

MariaDBは使っていませんが、MariaDBはMySQLのフォークだから、MySQLのカラムの追加 が使えるでしょうか?

投稿2015/12/02 16:39

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

infrataro

2015/12/03 09:40

ご確認ありがとうございます。 提示いただいたようにALTER文でカラム追加を実施予定なのですが、 カラムの拡張中にINSERTやUPDATE処理が可能かを今調査中となります。
Orlofsky

2015/12/03 14:51

KiyoshiMotokiさんのコメントの方が正解のようですね。 通常、DML(ALTERなどを含む)の実行中にDDLの変更は行いません。Oracleで確認したことがありますが、DMLを実行すると暗黙のCOMMITが実行されるため、たとえば2つのテーブルを更新する時、最初のテーブルを更新した後最初のテーブルにALTERを実行したことで暗黙のCOMMITが実行され、2つ目のテーブルの更新でエラーが発生したのでROLLBACKしたけど、最初のテーブルはCOMMITされているため、2つ目のテーブルしかROLLBACKできないので、2つのテーブルの更新をまとめてCOMMIT or ROLLBACKするというトランザクションが崩れてデータの不整合が発生するなどのトラブルがあり得ます。 データの精度を確保しなければならないシステムでは必ずDMLが実行されない時にDDLを実行するために計画停止を行うこともあります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問