Когда я запускаю этот запрос на сервере SQL с сервера кэша Varnish.
select count(distinct email) from aiki_users, ocal_files where userid =
(select upload_user from ocal_files where upload_user = userid limit 1)
С таблицей aiki_users
, имеющей> 80000 строк
и таблицей ocal_files
, имеющей> 30000ряды.
убивает сервер.Он вызывается из php-скрипта через ajax.Я должен закрыть страницу, которая вызывает его.
Я не знаю, что он возвращает, но я знаю, что то, что я хочу сделать, должно быть создано с помощью группы и наличия, но я не знаюкак.
Таблица aiki_users выглядит следующим образом:
CREATE TABLE IF NOT EXISTS `aiki_users` (
`userid` int(9) unsigned NOT NULL auto_increment,
`username` varchar(100) NOT NULL default '',
`full_name` varchar(255) NOT NULL,
`country` varchar(255) NOT NULL,
`sex` varchar(25) NOT NULL,
`job` varchar(255) NOT NULL,
`password` varchar(100) NOT NULL default '',
`oauth_passcode` varchar(255) NOT NULL,
`oauth_token` varchar(255) NOT NULL,
`oauth_token_secret` varchar(255) NOT NULL,
`usergroup` int(10) NOT NULL default '0',
`email` varchar(100) NOT NULL default '',
`avatar` varchar(255) NOT NULL,
`homepage` varchar(100) NOT NULL default '',
`first_ip` varchar(40) NOT NULL default '0',
`first_login` datetime NOT NULL,
`last_login` datetime NOT NULL,
`last_ip` varchar(40) NOT NULL,
`user_permissions` text NOT NULL,
`maillist` int(1) NOT NULL,
`logins_number` int(11) NOT NULL,
`randkey` varchar(255) NOT NULL,
`is_active` int(5) NOT NULL,
PRIMARY KEY (`userid`),
KEY `username` (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
У меня нет правильного доступа к серверу, я не вижу определение ocal_files, но:
ocal_files.aiki_users = aiki_users.userid
Кто-нибудь может мне сказать, насколько плох запрос и что он возвращает?