Ответ 1
Используйте команду SHOW CREATE TABLE
Это говорит мне больше о ваших таблицах, чем ваши слова:
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)
CAVEAT. Если в вашей таблице имеется 70 столбцов, оставьте ненужные. Что необходимо?
- Поля, добавленные в список
- Поля SELECTed
- Поля, которые указаны на странице
Используйте 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)
CAVEAT:\G, очевидно, превращает одну строку данных в несколько. Это становится столь же громоздким для нескольких рядов данных. Делайте то, что выглядит лучше всего.
Используйте внешний пастик для неприятно больших кусков данных:
Сообщите нам ваши ожидания
- Медленное?. Мы не знаем, что медленно для вас. Секунды, минуты, часы? Это помогает знать.
- Быстрее. Мы этого не знаем. Какое ваше ожидание быстро?
- Частота. Это запрос, который вы планируете запускать только один раз? Ежедневно? Сотни или тысячи раз в день? Это помогает нам знать, когда это хорошо.