광택 캐시 서버에서이 쿼리를 SQL 서버에서 실행할 때.이 SQL 쿼리로 인해 서버가 죽는 이유는 무엇입니까?
select count(distinct email) from aiki_users, ocal_files where userid =
(select upload_user from ocal_files where upload_user = userid limit 1)
80000 행
및 ocal_files
인 테이블> 30000 행>aiki_users
표 갖는.
서버를 종료합니다. 그것은 아약스를 통해 PHP 스크립트에서 호출됩니다. 나는 그것을 호출하는 페이지를 닫아야한다.
나는 그것이 반환 모르겠어요,하지만 난 내가하고 싶은 일을하고함으로써 그룹으로 작성되어야 함을 알고,하지만 난 방법을 모르겠어요.
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의 defnition를 볼 수 있지만 수 없습니다
이ocal_files.aiki_users = aiki_users.userid
아무도 말할 수 쿼리가 얼마나 나쁜지, 반환되는 결과가 무엇입니까?
귀하의 색인은 무엇입니까? – Efazati
이 쿼리는 자연어로 무엇을하려합니까? 누군가 그것을 읽으면 2 줄짜리 질의를 쉽게 알아낼 수 없으며 실제로 상황은 나쁩니다. – Jon
테이블 구조를 게시하는 데 도움이 될 것입니다. 적어도 쿼리에 관련된 열과 이들이 서로 어떻게 관련되어 있는지, 아마도 우리는이를 최적화하는 데 도움을 줄 수 있습니다. –