Código
CREATE TABLE {$db_prefix}topics ( id_topic mediumint(8) UNSIGNED NOT NULL AUTO_INCREMENT, is_sticky tinyint(4) NOT NULL DEFAULT '0', id_board SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0', id_first_msg INT(10) UNSIGNED NOT NULL DEFAULT '0', id_last_msg INT(10) UNSIGNED NOT NULL DEFAULT '0', id_member_started mediumint(8) UNSIGNED NOT NULL DEFAULT '0', id_member_updated mediumint(8) UNSIGNED NOT NULL DEFAULT '0', id_poll mediumint(8) UNSIGNED NOT NULL DEFAULT '0', id_previous_board SMALLINT(5) NOT NULL DEFAULT '0', id_previous_topic mediumint(8) NOT NULL DEFAULT '0', num_replies INT(10) UNSIGNED NOT NULL DEFAULT '0', num_views INT(10) UNSIGNED NOT NULL DEFAULT '0', locked tinyint(4) NOT NULL DEFAULT '0', unapproved_posts SMALLINT(5) NOT NULL DEFAULT '0', approved tinyint(3) NOT NULL DEFAULT '1', PRIMARY KEY (id_topic), UNIQUE last_message (id_last_msg, id_board), UNIQUE first_message (id_first_msg, id_board), UNIQUE poll (id_poll, id_topic), KEY is_sticky (is_sticky), KEY approved (approved), KEY id_board (id_board), KEY member_started (id_member_started, id_board), KEY last_message_sticky (id_board, is_sticky, id_last_msg), KEY board_news (id_board, id_first_msg) ) ENGINE=MyISAM;
Un consejo:
Deshágase de las tablas de texto
Con frecuencia, al hacer consultas de ordenación (sort), union (join) y otras operaciones, MySQL necesita para crear una tabla temporal. MySQL por lo general trata de crear estos como las tablas de memoria, sin embargo, si la tabla resultante es TEXT o BLOB, es incapaz de hacer esto, en lugar de crearlo como una tabla MyISAM en el disco. Esto puede matar a rendimiento si no se han / tmp montada en la memoria o si tiene un key buffer pequeño.
La conversión de las columnas TINYTEXT a VARCHAR (255) es recomendado.
Fuente:
http://www.simplemachines.org/community/index.php?topic=293441.msg1935333#msg1935333







