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

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

ただいまの
回答率

91.34%

  • MySQL

    4387questions

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

ALTER TABLE 実行時の影響

解決済

回答 1

投稿 2017/12/01 17:46

  • 評価
  • クリップ 0
  • VIEW 47

neonjudy

score 37

webサービスが稼働している状況で、
ALTER TABLE を実行しテーブルの設定を変更する必要がある場合。
(トランザクション無→トランザクション有
への変更となります。)

ユーザーへの影響などとしては何が考えられるでしょうか?

ご教授よろしくお願いいたします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+2

設定変更に長時間かかるようであればその間ロックが掛かる可能性があります
設定の変更はやはりサービスを一時とめて実行された方がよいでしょう

設定変更がトランザクション無→トランザクション有とのことで
もともと参照や更新にトランザクションなしのSQL文を発行していたはずなので
プログラム自体をアップデートしないかぎり挙動は変わらないと思います。
その後トランザクションありのプログラムに書き換えれば相応の
精度の向上につながりますが、検索速度などはさがるかもしれません

本チャンDBで実行するのは危険なので、テストサーバーを立ち上げて
ダンプデータを投入し、一度計測されるとよいかと

投稿 2017/12/01 17:51

編集 2017/12/01 17:55

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/01 17:55

    お早い回答ありがとうございます。
    COMMENTの設定変更となり検証したところ、5秒内くらいで処理完了しました。

    キャンセル

  • 2017/12/01 17:57

    >本チャンDBで実行するのは危険なので、テストサーバーを立ち上げて
    >ダンプデータを投入し、一度計測されるとよいかと

    アドバイスまでありがとうございます。
    テスト環境にて実施いたしました。

    キャンセル

  • 2017/12/01 17:57

    > 5秒内くらいで処理完了

    それならさほど問題ないかもしれませんね
    トランザクションありのエンジンでもオートコミット設定に
    なっていれば同じなので、設定変更後トランザクションを前提とした
    SQL文発行にプログラムを書き直して下さい

    キャンセル

  • 2017/12/01 18:28

    ありがとうございます。
    ソース自体はトランザクションに対応しているものとなっております。
    mroongaのストレージを使っているのですが、ALTER Tableの際にテーブルコピーは発生するものなのでしょうか?

    キャンセル

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

ただいまの回答率

91.34%

関連した質問

  • 解決済

    重複したエントリーを削除する方法

    存在しているテーブルのレコードに多くの重複が含まれている為困っています。 一意になるように、重複している列を削除する簡単な方法を教えて頂けませんでしょうか?

  • 解決済

    PostgreSQLのトリガをについて。

    データをバルクロードしていて、全てのトリガ修正を行ごとよりもずっと楽に再計算することができます。 PostgreSQLで一時的にすべてのトリガを無効にするにはどうすればいいで

  • 解決済

    phpMyAdmin カラムの順序を変更したい

    phpMyAdminを使って、MySQLのカラムを再度順序付ける為の方法を知りたいです。 cardinalityと呼ばれるのですか? テーブルを作成しましたが、私が持ってい

  • 解決済

    PostgreSQLで、カラムのデフォルト値を変更したい

    PostgreSQLでカラムのデフォルト値を変更するにはどうすればいいですか? 以下を試したのですが、上手くいかなかったです。 ALTER TABLE ONLY books AL

  • 解決済

    Mysql カラムを追加する方法

    Mysqlでテーブルを作ったのは良いものの、必要なカラムをいれるのを忘れていました。 カラムを新しく作ったテーブルに追加するにはどうすれば良いでしょうか? どなたか教えていただけま

  • 解決済

    PHP,MySQLについて質問です

    PHPからMySQL内のAUTO_INCREMENTの値をリセットするにはどうしたらいいでしょうか

  • 受付中

    MySQL(MariaDB)のInnoDBのテーブルでINSERTとDELETEを頻繁に繰り返す処理...

    更新処理などの重複を防ぐためロック用のテーブルを作成し、処理前にレコードをINSERTしロック、処理完了後にレコードをDELETEしロック解除といった、頻繁にINSERTとDELE

  • 解決済

    [postgresql]テーブルスペース移動について

    DB(postgresql)のデータ領域が狭くなったので、 下記サイトの通りにテーブルスペースを移動しようと 思うのですが、その際にDBは稼働中でも問題ないのでしょうか?

同じタグがついた質問を見る

  • MySQL

    4387questions

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