Профилирование запроса

hammet

Новичок
Профилирование запроса

Запрос, который считает количество строк в таблице объявлений, содержащих букву "о" в одном из 3х текстовых полей, выполняется за 1,03 сек.

Я сделал профилирование запроса в PhpMyAdmin.
Вот результаты:
PHP:
checking permissions	0.00011625
Opening tables	0.00001050
System lock	            0.00002750
Table lock	            0.00001350
init	                        0.00001675
optimizing	0.00007375
executing	0.00000925
optimizing	0.00001225
statistics	0.00003300
preparing	0.00016200
executing	0.00003350
Sending data	0.00001125
end	           1.02732650
query end	0.00001775
freeing items	0.00000850
closing tables	0.00002450
logging slow query	0.00001675
cleaning up	0.00000675
как видите end после sending data занимает 99% времени выполнения...
что означает это "end"?
На что следует обратить внимание?

сам запрос:
[sql]
SELECT (
SELECT
COUNT(t1.id)
FROM
gloker_announcements AS t1
LEFT OUTER JOIN
gloker_regions_list AS t4 ON (t1.region=t4.id)
LEFT OUTER JOIN
gloker_regions_list AS t5 ON (t1.city=t5.id),
gloker_rubrikator_list AS t2,
gloker_rubrikator_list AS t3
WHERE

t1.enable=1
AND t1.country=673 AND ((t1.head LIKE "%о%" OR t1.body LIKE "%о%" OR t1.fullsrch LIKE "%о%") )

AND
t1.rubrika=t2.id AND
t1.sub_rub=t3.id
) AS count
[/sql]
 

Фанат

oncle terrible
Команда форума
Mr_Max
мне кажется, ты не совсем внимательно прочел вопрос
 

hammet

Новичок
тем не менее, ссылки оказались полезными, спасибо.
Но вопрос остается открытым.

-~{}~ 04.10.07 16:14:

Индексы в основной таблице есть:
[sql]
CREATE TABLE IF NOT EXISTS `gloker_announcements` (
`id` int(11) NOT NULL auto_increment,
`rubrika` int(11) NOT NULL,
`sub_rub` int(11) NOT NULL default '0',
`country` int(11) NOT NULL,
`region` int(11) NOT NULL default '0',
`city` int(11) NOT NULL,
`rayon` int(10) unsigned NOT NULL,
`lico` tinyint(4) NOT NULL,
`email` varchar(50) collate cp1251_ukrainian_ci NOT NULL,
`passwd` varchar(20) collate cp1251_ukrainian_ci NOT NULL,
`user_name` varchar(40) collate cp1251_ukrainian_ci NOT NULL,
`head` text collate cp1251_ukrainian_ci NOT NULL,
`price` double NOT NULL,
`type` tinyint(2) NOT NULL,
`body` text collate cp1251_ukrainian_ci NOT NULL,
`tel1` varchar(20) collate cp1251_ukrainian_ci NOT NULL,
`tel2` varchar(20) collate cp1251_ukrainian_ci NOT NULL,
`cod1` varchar(5) collate cp1251_ukrainian_ci NOT NULL,
`cod2` varchar(5) collate cp1251_ukrainian_ci NOT NULL,
`photo` varchar(50) collate cp1251_ukrainian_ci NOT NULL,
`enable` tinyint(2) NOT NULL,
`data` datetime NOT NULL,
`srok` int(11) NOT NULL,
`valuta` int(11) NOT NULL default '3',
`icq` varchar(15) collate cp1251_ukrainian_ci NOT NULL,
`user_id` int(11) NOT NULL,
`pole1` varchar(20) collate cp1251_ukrainian_ci NOT NULL,
`pole2` varchar(20) collate cp1251_ukrainian_ci NOT NULL,
`pole3` varchar(20) collate cp1251_ukrainian_ci NOT NULL,
`priznak` varchar(10) collate cp1251_ukrainian_ci NOT NULL,
`fullsrch` text collate cp1251_ukrainian_ci NOT NULL,
`mark` int(10) unsigned NOT NULL,
`moderator` tinyint(1) NOT NULL,
`bot` varchar(10) collate cp1251_ukrainian_ci default NULL,
PRIMARY KEY (`id`),
KEY `mark` (`mark`),
KEY `country` (`country`),
KEY `region` (`region`),
KEY `city` (`city`),
KEY `rayon` (`rayon`),
KEY `enable` (`enable`),
KEY `rubrika` (`rubrika`,`sub_rub`),
KEY `search_index_country` (`country`,`enable`,`rubrika`,`sub_rub`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_ukrainian_ci AUTO_INCREMENT=748402 ;
[/sql]
 
Сверху