Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
agat 11.09.2007 15:22
Эксплеин показал следующееid select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE article ALL PRIMARY,group_id,dt_pubNULL NULL NULL 4682 Using where; Using temporary; Using filesort 1 SIMPLE article_translation ref article_id_2 article_id_2 5 qha.article.id,const 1 Using indexкод таблиц
CREATE TABLE `article` ( `id` int(11) unsigned NOT NULL auto_increment, `parent_id` int(11) unsigned NOT NULL default '0', `region_id` int(11) unsigned NOT NULL default '0', `group_id` int(11) unsigned NOT NULL default '0', `dt_published` datetime NOT NULL default '0000-00-00 00:00:00', `dt_posted` datetime NOT NULL default '0000-00-00 00:00:00', `dt_edited` datetime NOT NULL default '0000-00-00 00:00:00', `is_active` tinyint(3) NOT NULL default '0', `is_flash` tinyint(3) unsigned NOT NULL default '0', `is_open` tinyint(3) unsigned NOT NULL default '0', `price` varchar(255) NOT NULL default '0', `price_with_media` varchar(255) NOT NULL default '0', PRIMARY KEY (`id`), KEY `group_id` (`group_id`), KEY `region_id` (`region_id`), KEY `dt_published` (`dt_published`), KEY `is_active` (`is_active`), KEY `parent_id` (`parent_id`), KEY `group_id_2` (`dt_published`,`group_id`,`is_active`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE `article_translation` ( `id` int(10) unsigned NOT NULL auto_increment, `article_id` int(10) unsigned NOT NULL default '0', `lang_id` tinyint(3) NOT NULL default '0', `title` longtext, `body` longtext, PRIMARY KEY (`id`), KEY `article_id_2` (`article_id`,`lang_id`), FULLTEXT KEY `title` (`title`), FULLTEXT KEY `body` (`body`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;Все индексы стоят правильно (вроде). Эксплеин тоже ровный. Похоже все дело в
DAYOFMONTH(dt_published) AS day, MONTH(dt_published) AS month, YEAR(dt_published) AS yearнужно тут менять что-то. Делать еще три поля? Или можно создать поле с типом DATE - онобы все решило по идее. Буду копать короче.