Coagulant
Новичок
Оптимизация запроса
Имеется запрос (слегка переделанный из форума phpbb), который выполняется достаточно медленно и хотелось бы его ускорить:
Вот структура 3-х таблиц, из которых делается выборка:
Имеется запрос (слегка переделанный из форума phpbb), который выполняется достаточно медленно и хотелось бы его ускорить:
PHP:
SELECT u.user_id, u.username, u.user_allow_viewonline, u.user_level, s.session_logged_in, s.session_time, s.session_page, s.session_ip, i.country
FROM phpbb_users u, phpbb_sessions s, phpbb_ip2country i
WHERE u.user_id = s.session_user_id
AND s.session_time >=1109870034
AND s.session_ip >= i.ip_from
AND s.session_ip <= i.ip_to
ORDER BY u.username ASC , s.session_ip ASC
PHP:
CREATE TABLE `phpbb_users` (
`user_id` mediumint(8) NOT NULL default '0',
`username` varchar(25) NOT NULL default '',
`user_session_time` int(11) NOT NULL default '0',
`user_level` tinyint(4) default '0',
`user_allow_viewonline` tinyint(1) NOT NULL default '1',
PRIMARY KEY (`user_id`),
KEY `user_session_time` (`user_session_time`)
) TYPE=MyISAM;
CREATE TABLE `phpbb_sessions` (
`session_id` char(32) NOT NULL default '',
`session_user_id` mediumint(8) NOT NULL default '0',
`session_start` int(11) NOT NULL default '0',
`session_time` int(11) NOT NULL default '0',
`session_ip` char(8) NOT NULL default '0',
`session_page` int(11) NOT NULL default '0',
`session_logged_in` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`session_id`),
KEY `session_user_id` (`session_user_id`),
KEY `session_id_ip_user_id` (`session_id`,`session_ip`,`session_user_id`)
) TYPE=MyISAM;
CREATE TABLE `phpbb_ip2country` (
`ip_from` varchar(8) NOT NULL default '',
`ip_to` varchar(8) NOT NULL default '',
`country_short` char(2) NOT NULL default '',
`country` varchar(50) NOT NULL default '',
PRIMARY KEY (`ip_from`,`ip_to`)
) TYPE=MyISAM;