Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Оптимизация большой таблицы.
 
 автор: Quies   (09.01.2011 в 03:47)   письмо автору
 
 

Есть таблица с очень большим кол-вом записей около 70 млн. (линковочная таблица от большого каталога).
Уменьшить их кол-во нельзя, нужны все записи так как по ней ведётся поиск.

Запрос выполняется достаточно долго, около минуты, а возможно и больше.
Я ещё могу подождать, но пользователь ждать не будет и уйдёт со страницы.

Как её можно оптимизировать?
Там всего 3 поля, по двум идёт запрос, а ищется третье(всё в типе int).

И поможет ли её разбиение на меньшие таблицы, скажем по 5 млн. записей?
В этом случае придётся искать последовательно в каждой таблице, пока запись не будет найдена, возможно из за переключений скорость поиска будет больше.

  Ответить  
 
 автор: cheops   (09.01.2011 в 09:22)   письмо автору
 
   для: Quies   (09.01.2011 в 03:47)
 

Таблица индексирована? Если индексирована, то каким образом и каким образом выполняется поисковый запрос?

  Ответить  
 
 автор: Quies   (09.01.2011 в 21:56)   письмо автору
 
   для: cheops   (09.01.2011 в 09:22)
 

Нет, таблица без индексов. Запрос по 2 полям, без запросов в другие таблицы.

  Ответить  
 
 автор: Trianon   (09.01.2011 в 13:18)   письмо автору
 
   для: Quies   (09.01.2011 в 03:47)
 

в таких ситуациях приводят запрос и структуру вовлеченных в него таблиц.

  Ответить  
 
 автор: Quies   (09.01.2011 в 22:00)   письмо автору
 
   для: Trianon   (09.01.2011 в 13:18)
 

Запрос следующий:



SELECT links FROM laid WHERE typeid=11279 AND gaid=265372; 

  Ответить  
 
 автор: cheops   (09.01.2011 в 22:20)   письмо автору
 
   для: Quies   (09.01.2011 в 22:00)
 

Создайте индекс по полям typeid и gaid. Скорость должна возрасти значительно.

  Ответить  
 
 автор: Trianon   (09.01.2011 в 22:48)   письмо автору
 
   для: Quies   (09.01.2011 в 22:00)
 

потребуется составной индекс.

К сказанному cheops'ом я бы добавил, что если диапазон изменения у поля gaid больше, чем у поля typeid, (и при прочих равных) то поле gaid в индекс стоит поместить первым.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования