Use SHOW CREATE TABLE
Isso me diz mais sobre suas tabelas do que suas palavras jamais poderiam:
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)
AVISO :se você tiver 70 colunas em sua tabela, omita as desnecessárias . O que é necessário?
- Campos unidos em
- Campos SELECIONADOS
- Campos ONDE estão ativados
Use EXPLAIN
Isso me permite ver a melhor forma de otimizar sua consulta atualmente em funcionamento, mas presumivelmente lenta:
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)
Usar \G
Ter que rolar para a direita é geralmente um inconveniente.
Normal:
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)
Melhor:
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)
AVISO: \G obviamente transforma uma linha de dados em várias. Isso se torna igualmente complicado para várias linhas de dados. Faça o que parece melhor.
Use um pastebin externo para grandes blocos de dados desagradáveis:
Deixe-nos saber suas expectativas
- Lento? - Não sabemos o que é lento para você. Segundos, minutos, horas? Ajuda saber.
- Mais rápido - Nós também não sabemos. Qual é a sua expectativa de rápido?
- Frequência - Esta é uma consulta que você planeja executar apenas uma vez? Diário? Centenas ou milhares de vezes por dia? Isso nos ajuda a saber quando é Bom o suficiente .