人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

下記のMySQL のテーブルに大量にデータがはいっています。
select count(*) from このテーブル名
をかけて、2,3分経過しても、結果がかえってきません。
テーブルが壊れているのでしょうか? それともデータの入れ方によっては、
非常に時間がかかるテーブル構造になっているのでしょうか?

+-------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+-------------+------+-----+---------+-------+
| a | text | NO | | | |
| b | text | NO | | | |
| c | text | NO | | | |
| d | text | NO | | | |
| e | smallint(6) | NO | | | |
| f | smallint(6) | YES | | NULL | |
| g | int(11) | NO | | | |
| h | varchar(4) | NO | | | |
| adate | date | YES | | NULL | |
+-------------------+-------------+------+-----+---------+-------+

●質問者: isogaya
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:FIELD Key MySQL SELECT yes
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● bmax
●35ポイント

テーブルにインデックスが無く、さらにcount(*)を使っているのが原因と思います。


Not Nullに設定されている列の中で値が一意になる列はあるでしょうか?

その列を主キーに設定し、Select Count(主キーに設定した列) From テーブル とすれば速くなると思います。


そのような列が無い場合、一意になるID列のようなものを追加して主キーに設定するといいと思います。


テーブルレイアウトの変更が不可で一意になる列もない場合、Not Nullの列(例えばフィールドa)にインデックスを張り、Select Count(フィールドa) From テーブル とすれば、パフォーマンスが改善されると思います。


http://q.hatena.ne.jp/1202180140

※URLはダミーです

◎質問者からの返答

なるほど


2 ● ニャンざぶろう
●35ポイント

2?3分は長いですねえ。

(1)DBが排他アクセスに設定されていて、他からのアクセスでロックされていてタイムアウトになるまで待たされる。

(2.1)DBのあるファイルシステムの管理情報が壊れている(ディスクランプつきっぱなしorずっと点滅)

(2.2)DBのあるディスクがいかれかけていてずっとアクセスしている(ディスクランプつきっぱなし)

などの症状はありませんでしょうか。

http://q.hatena.ne.jp/1202180140

◎質問者からの返答

アクセスロックの可能性ありですねえ。

夜ためしてみます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ