SHOWCREATETABLEを使用する
これはあなたの言葉がこれまでにできたよりもあなたのテーブルについて私にもっと教えてくれます:
mysql> show create table magic\G
*************************** 1. row ***************************
Table: magic
Create Table: CREATE TABLE `magic` (
`id` int(11) DEFAULT NULL,
`what` varchar(255) DEFAULT NULL,
`the` datetime DEFAULT NULL,
`heck` text,
`soup_is_good` double DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
警告 :テーブルに70列ある場合は、不要な列を省略してください 。何が必要ですか?
- 参加しているフィールド
- 選択されたフィールド
- フィールドの場所
EXPLAINを使用
これにより、現在機能しているが、おそらく遅いクエリを最適化するための最善の方法を確認できます。
mysql> explain select * from magic\G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: magic
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 1
Extra:
1 row in set (0.00 sec)
\Gを使用
右にスクロールする必要があるのは一般的に ご不便をおかけします。
通常:
mysql> select * from magic;
+------------+-------------------------------+---------------------+-------------------+--------------+
| id | what | the | heck | soup_is_good |
+------------+-------------------------------+---------------------+-------------------+--------------+
| 1000000000 | A really long text string yay | 2009-07-29 22:28:17 | OOOH A TEXT FIELD | 100.5 |
+------------+-------------------------------+---------------------+-------------------+--------------+
1 row in set (0.00 sec)
より良い:
mysql> select * from magic\G
*************************** 1. row ***************************
id: 1000000000
what: A really long text string yay
the: 2009-07-29 22:28:17
heck: OOOH A TEXT FIELD
soup_is_good: 100.5
1 row in set (0.00 sec)
警告: \ Gは、明らかに1行のデータを複数の行に変換します。これは、データのいくつかの行に対しても同様に面倒になります。一番よく見えることをしてください。
不愉快に大きなデータのチャンクには外部のペーストビンを使用します:
あなたの期待を教えてください
- 遅いですか? -私たちはあなたにとって何が遅いのかわかりません。秒、分、時間?知るのに役立ちます。
- 高速 -これもわかりません。高速に期待することは何ですか?
- 頻度 -これは1回だけ実行する予定のクエリですか?毎日? 1日に数百回または数千回?これは、十分であるかどうかを知るのに役立ちます 。