|
|
|
|
|
для: f@ntom
(11.12.2010 в 13:41)
| | а то, что при сложных коррелированных запросах ни одного индекса не видно - это так и задумано? | |
|
|
|
|
|
|
| Доброго времени суток, помогите пожалуйста оптимизировать запрос, раньше всё работало относительно нормально, теперь, когда в таблице стало много больше записей, всё стало тормозить, вплоть до не выполнения скрипта..
Сам запрос:
<?
if ($res_sim["sex"]) {$where .= "users.sex='".$res_sim["sex"]."' AND simp_user.mod='1'";} else {$where .= "simp_user.mod='1'";}
$c=mysql_num_rows(mysql_query("
select users.nik, simp_user. * from simp_user
LEFT JOIN users ON users.id = simp_user.id
where not exists
(select 1 from simpatii s where s.komu = $id AND s.kto = simp_user.id) AND $where"));
?>
|
Таблицы:
<?
CREATE TABLE IF NOT EXISTS `simpatii` (
`komu` int(11) NOT NULL,
`kto` int(11) NOT NULL,
`nrav` int(11) NOT NULL,
`vzaim` int(11) NOT NULL default '0',
`new` int(11) NOT NULL default '1',
`date` datetime NOT NULL
);
CREATE TABLE IF NOT EXISTS `simp_user` (
`id` int(11) NOT NULL,
`photo` text collate utf8_bin NOT NULL,
`mod` int(1) NOT NULL default '0',
`size` int(3) NOT NULL default '128',
`sex` text collate utf8_bin NOT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL auto_increment,
`nik` varchar(20) collate utf8_bin default NULL,
`pass` varchar(50) collate utf8_bin NOT NULL,
...
...
...
`sex` varchar(7) collate utf8_bin default NULL,
PRIMARY KEY (`id`)
);
?>
|
| |
|
|
|
|