parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

сидел анализировал...

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 - онобы все решило по идее. Буду копать короче.