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

Форум MySQL

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

 

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

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

тема: Оптимизировать запрос
 
 автор: night_charter   (05.02.2008 в 00:29)   письмо автору
 
 

Добрый день.
Хочу посоветоваться с Вами, узнать секрет оптимизированных запросов у гуру -)
Перейдем к делу.
Есть например две таблички..
Категории - id| name
и контент -id|cid|text
CID - ID пренадлежащий таличке с категориями.
Вопрос вот в чем, например у меня в таблице content 50 000 записей.
Как грамотно сформировать запрос, который не сильно бы грузил сервер и как можно быстрее выполнялся, при выводе категорий и содержимых в них записей.
Например:
category (8 055)
category2 (3 985)
category3 (7 652)
и т.п.
Жду ваших преложений и советов, заранее благодарен.

   
 
 автор: cheops   (05.02.2008 в 13:42)   письмо автору
 
   для: night_charter   (05.02.2008 в 00:29)
 

Правильно ли я понял мысль - выводится категория и количество записей из таблицы контент, которые принадлежат данным категориям? На одной странице много категорий выводится?

   
 
 автор: Night_Charter   (05.02.2008 в 15:46)   письмо автору
 
   для: cheops   (05.02.2008 в 13:42)
 

Да.
Интерисует как с точки зрения оптимизации подойти к этому вопросу.

   
 
 автор: cheops   (06.02.2008 в 00:29)   письмо автору
 
   для: Night_Charter   (05.02.2008 в 15:46)
 

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

   
 
 автор: Night_Charter   (06.02.2008 в 11:08)   письмо автору
 
   для: cheops   (06.02.2008 в 00:29)
 

Такой запрос обрабатывается порядка 10 секунд, как сделать чтобы быстрее было?

   
 
 автор: cheops   (06.02.2008 в 12:03)   письмо автору
 
   для: Night_Charter   (06.02.2008 в 11:08)
 

1) А как сейчас выглядит запрос?
2) Индексирована ли таблица контент по полю cid?

   
 
 автор: Night_Charter   (06.02.2008 в 15:18)   письмо автору
 
   для: cheops   (06.02.2008 в 12:03)
 

Запрос обычный - селект каунт id from content where cid like 'XXXX'
Вы спрашивали:
Индексирована ли таблица контент по полю cid?
Не знал об этом. Увеличивается скорость выполнения запроса?
Приведите, пожалуйста, самый простой пример.

   
 
 автор: Thrasher   (06.02.2008 в 17:21)   письмо автору
 
   для: Night_Charter   (06.02.2008 в 15:18)
 

Никаких like.
where cid = 'XXXX'
И обязательно проиндексировать.

   
 
 автор: Night_Charter   (06.02.2008 в 18:33)   письмо автору
 
   для: Thrasher   (06.02.2008 в 17:21)
 

А как проиндексировать? )

   
 
 автор: Thrasher   (07.02.2008 в 10:07)   письмо автору
 
   для: Night_Charter   (06.02.2008 в 18:33)
 

Например, через phpMyAdmin. В структуре таблицы напротив соответствующего поля нажать кнопочку index.

   
Rambler's Top100
вверх

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