Vladson
Krishna
Ну там не JOIN а просто выборка из нескольких таблиц
А разве это не INNER JOIN? 0
а смысл всей каши давольно прост, по их мнению текст сообщения это лишь часть необходимая для просмотра топика, в то время как расчёты всего остального (с участием uid, ptime но без текста) встречаются часто
Звучит логично, первая мысль была такая же, но при более внимательном рассмотрении выясняется, что на самом деле таблица постов считается как раз в основном во viewtopic, а для остальных экранов (функ-ий) данные кешируются в других таблицах - таблице форумов и топиков. Поправьт меня all, если ошибаюсь.
kruglov
Поиск по фиксированной таблице (где нету текстов, варчаров и прочих блобов) даже без индексов осуществляется быстро.
Поэтому на индексах можно сэкономить место.
И такая мысль мне пришла в голову. Но, разрабы пхпбб хранят в таблице и поля переменной длины, что делает её динамической размерности.
[sql]
CREATE TABLE phpbb_posts (
post_id mediumint(8) unsigned NOT NULL auto_increment,
topic_id mediumint(8) unsigned NOT NULL default '0',
forum_id smallint(5) unsigned NOT NULL default '0',
poster_id mediumint(8) NOT NULL default '0',
post_time int(11) NOT NULL default '0',
poster_ip varchar(8) NOT NULL default '',
post_username varchar(25) default NULL,
enable_bbcode tinyint(1) NOT NULL default '1',
enable_html tinyint(1) NOT NULL default '0',
enable_smilies tinyint(1) NOT NULL default '1',
enable_sig tinyint(1) NOT NULL default '1',
post_edit_time int(11) default NULL,
post_edit_count smallint(5) unsigned NOT NULL default '0',
PRIMARY KEY (post_id),
KEY forum_id (forum_id),
KEY topic_id (topic_id),
KEY poster_id (poster_id),
KEY post_time (post_time)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251[/sql]
-~{}~ 01.04.06 18:50:
Здесь
poster_ip varchar( 8 ) NOT NULL default '' - понятно что, а
post_username varchar( 25 ) default NULL - имя юзера в случае анонимного поста.
По-этому выгоды по-прежнему не ясны. Может это рудимент?