• ベストアンサー

インデックスを張っている最中は何もできなくなりますか?

utugi_taroの回答

回答No.2

>ALTER TABLEの最中は流石にINSERTできないでしょうか? できます。 ALTER TABLEは基本的にテーブルの定義を変更するものです。 定義を変更したテーブルへのINSERTやSELECTは勿論できます。 (定義内容に合わせての処理に限る。変更前に文字列だったものを数字列にして「ABC」を入れようとしたら当然エラーですね。)

関連するQ&A

  • トランザクション中にSELECTした場合について

    InnoDBを使っているのですが、 以下の1.から5.の処理の間に、サーバー1.の「テーブルA」へ SELECTを掛けた場合、何か遅い気がします・・原因は何でしょうか? 1.サーバー1でトランザクション開始 2.サーバー1の「テーブルA」をDELETEでを全削除 3.サーバー2から「テーブルA」の新しいデータを取得 4.3.で取得したデータをサーバー1の「テーブルA」へINSERT 5.サーバー1でトランザクション終了 他のトランザクションでDELETEされたレコードに対し、 SELECTすると結果が返るのは遅いでしょうか?

    • ベストアンサー
    • MySQL
  • インデックスがすぐに壊れます…

    テーブル内の1フィールドにインデックスを設定していますが、内容が頻繁に更新されるせいか1日前後でインデックスが破損し、テーブルへのアクセスができなくなって困っています。 以下、詳細な状況です。 ------------------------------------------ (1)該当テーブルのレコード数は、約16,000,000件 (2)インデックスは[レコード更新日時]フィールドに設定しています。 (3)15分おきにデータの自動更新を行い、数百~数千件のレコードが更新されます。 その際、当然ながら[レコード更新日時]フィールドも更新されます。 (4)1日~2日に1度の割合で(3)の自動更新処理が異常終了します。 SQLのエラーコードはまちまちですが、重要度は決まって20前後の深刻なレベルです。 (5)(2)のインデックスを削除→再作成すると、(3)の自動更新処理は正常に行える (6)以下、(3)~(5)の繰り返し ------------------------------------------ 16,000,000件のうちの数千件といえば、0.1%にも満たない量です。そのために頻繁にインデックスの更新をしているうちにファイルがおかしくなるのでしょうか? (ひょっとしたら、インデックスの更新が完了しないうちに次の自動更新処理が実行されているのかもしれません) 同様のケースをご存知の方、いらっしゃいましたらどのように解決したかを教えてください。

  • Query Cacheとインデックスについて

    Query Cacheはテーブルが更新(何かしらのデータが追加)されると有効ではないのでしょうか? 掲示板のデータがinsertされるテーブルを含むデータベースの場合、Query Cacheは無意味なのでしょうか? MySQLのインデックスを再設定したいのですがどのような手順で行うと良いでしょうか? 全てのインデックスを削除して、再度インデックスを張ればいいのでしょうか?

    • ベストアンサー
    • MySQL
  • Winでバッチファイルで外部処理後、ファイル処理

    全部で3行のバッチファイルを作成しました。一行目で外部プログラムを呼び出し走らせて(30分ほどで終了します)、2行目と3行目でファイル処理をするものです。生成されたファイルをZIPして元のファイルを削除するだけです。 問題は2行目が始まらないので、バッチファイル自体が終了しません。 おそらく.batが一行目の処理終了を認識しないためだと思うのですが、どうしたらよいのでしょうか?バッチファイル自体は手動クリックで開始です。 例えば40分後に強制的に2行目に進む方法とか、外部処理の終了が、外部アプリの終了なのか・・・ よろしくお願いします。

  • トランザクションの考え方

    トランザクションの考え方を教えて下さい。 「データの参照や追加・更新・削除といった処理に矛盾がないことを保証する」という記述を見たのですが、下記の場合も良いのでしょうか。 トランザクションの開始 SELECT * FROM Aテーブル WHERE 項目A = '1' --処理-- UPDATE Aテーブル SET 項目B = '2' WHERE 項目A = '1' トランザクションの終了 開始から終了までの間に他のPCによって SELECT対象のデータが増える可能性があります。 この場合UPDATEするときはやはりSELECTの結果でLOOPするべきなのでしょうか。 上記のようにするとSELECT件数とUPDATE件数は異なってしまうのでしょうか。 環境はVB2005+SQL Server です。

  • インデックスを使用して・・・

    おはようございます。 SQLServerのテーブルに格納された情報が多いので インデックスを用いて検索処理を早めたいと考えました。 ---テーブル構成-------------- name / varchar address / varchar age / int ---------------------------- name,addressフィールドにインデックスを指定したのですが、 インデックスを指定することにより検索するSQL文に なにか特別な書き方をしなくてはいけないのでしょうか? select name, address, age from test_table; ってSQLを記述しただけでは、 インデックスを作成する前と後では意味はないのでしょうか? 宜しくお願い致します。m(_ _)m

  • バッチファイルについて

    あるバッチファイルがあります。 そのバッチファイル内では、AとBというバッチが 呼び出されているとします。 このときのAおよびBの処理開始・終了時刻を ログとしてとりたいのですが、どのように記述 すればよいのでしょうか?教えてください。 あいまいな質問で申し訳ないですが よろしくお願いします。

  • MySQLでFullTextインデックスの再構築

    現在Webアプリを制作しています。 そこで検索機能を作成するにあたり FullTextで全文検索を行う処理を考えています。 Like文を使って検索するより速いらしいのですが、 insert/update文を実行しデータベースにデータを挿入/更新する際 FullTextで全文検索を行う場合だとインデックスを再構築する必要が あるみたいです。 http://melrose.jugem.cc/?eid=323 このインデックスの再構築についてよく分からないのですが、 上記のサイトではインデックスの再構築には REPAIR TABLE [テーブル名] QUICK; を実行とありました。 データの挿入/削除 処理後の検索インデックス修復には innsert 又は update文の直後にREPAIR TABLE [テーブル名] QUICK; を 実行するという事でいいのでしょうか?

    • ベストアンサー
    • MySQL
  • コマンドプロンプトについて教えてください。

    コマンドプロンプトについて教えてください。 Msiexec.exe実行でのプログラムのアンインストール ↓ REG DELETEでレジストリの削除 ↓ CDでインストール対象のEXEファイルがあるところに移動してEXE実行 という一連の流れを1つのバッチファイルにしたいのですが、処理終了(インストールされていることを確認)すると、なぜか真ん中の処理のレジストリーキーの削除ができてません。 /fオプションで強制削除をつけているはずなのですが…ちなみに、単独で上から実行すると正しくレジストリーキーは削除されております。 何が原因か色々調べましたが、わかりません。処理の間に何か構文が必要なのでしょうか? なるべくバッチファイルの数を少なくしたいのですが、上記の3つの流れを満たすにはどうすればよいですか? 試しに一番最初のアンインストールの部分を、 Start /w Msiexec.exe~でやってみたのですが、それでもREGdeleteで消したいレジストリーキーはレジストリエディタで確認すると残ってました…

  • index.datを自動的に削除したい。

    こんにちは。今回ご教授願いたいのは、 ”index.datをPCの毎起動時に自動的に削除したい。” ということです。 index.datには使用者が訪問したホームページのアドレスが記載されています。私はこれを保存しておきたくないので、時々削除しています。 index.datはWindowsによってロックされていますので、わたしは「いじくるつくーる」で起動時に削除する方法をとっています。 しかし、「いじくるつくーる」には私が探した限り、PCの毎起動時に自動的に指定したファイルを削除する手段がありません。 そこでお尋ねしたいのですが、バッチファイルやプログラム(いじくるつくーるを使用する方法以外も含む)を使ってPCの毎起動時に、index.datを自動的に削除する方法を教えていただきたいのです。 ※ソフトならソフト名、コマンドラインから作業するのであれば、打ち込むべきコマンドを、具体的に回答してくださるとうれしいです。 使用しているOS:Windows XP home SP2 ではご教授よろしくお願いいたします。