Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Неуч-самоучка я.
Есть такая таблица:
CREATE TABLE films ( id_film int(11) NOT NULL auto_increment, name_film varchar(255) NOT NULL, eng_film varchar(255) NOT NULL, duration_film int(11) NOT NULL, opis_film text, reiting_imdb float NOT NULL, year_film int(4) NOT NULL, trailer_url varchar(255) NOT NULL, slug_film varchar(255) NOT NULL, code_char_film int(11) default NULL, description_film text, door_title varchar(255) NOT NULL, door_keyword varchar(255) NOT NULL, door_description text, door_opis text, add_site int(1) NOT NULL, view_film int(11) NOT NULL, title_film varchar(255) NOT NULL, main_img varchar(255) NOT NULL, trailer_width int(11) NOT NULL, trailer_height int(11) NOT NULL, date_public int(11) NOT NULL, reiting_kinopoisk float NOT NULL, reiting_site float NOT NULL, keyword_film varchar(255) NOT NULL, peremen_film text NOT NULL, PRIMARY KEY (id_film), UNIQUE KEY name_film (name_film,duration_film,year_film), UNIQUE KEY slug_film (slug_film,code_char_film), ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
В таблице 16.000 записей, вес 25 Мб
Запрос такого вида:
SELECT Distinct peremen_film, keyword_film, name_film, f.id_film, year_film, opis_film, door_keyword, door_opis, door_description, door_title, duration_film, reiting_kinopoisk, reiting_imdb, reiting_site, eng_film, slug_film, code_char_film, main_img, view_film FROM films f where date_public<=1272549307 order by name_film Limit 0,18
Выполняется 0.47 секунд, при удалении условий поиска, время выполнения скрипта - 0.01 секунды
Как правильно расставить индексы, чтобы выполнялись нормально запросы? Или разбивать таблицу на несколько?
Отредактированно humbert (29.04.2010 18:14:12)
Неактивен
Ну, для конкретного запроса максимум, что можно сделать — добавить индекс
на date_public. Но сортировать все равно будет в памяти. И то, скорее всего,
<= выберет больше половины таблицы, а, значит, индекс будет неэффективен.
После этого только выбирать id_film, сортировать в памяти, выбирать 18 записей,
а потом уже присоединять остальные данные.
Неактивен
Понял принцип. Спасибо
Неактивен
Страниц: 1