Вернуться   Форум SAPE.RU > Общие вопросы > Разработка и сопровождение сайтов

-->
Ответ
 
Опции темы
Старый 13.07.2009, 13:31   #21
Эксперт
 
Регистрация: 05.03.2008
Сообщений: 1,095
Вес репутации: 249
boric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущее
По умолчанию

Еще небольшое замечание:
В данном конкретном случае рандомность надо делать только средствами пхп (или что там у вас). Поясню. Когда выборка в запросе как-либо обрабатывается, а потом применяется словечко LIMIT, то этот limit выполняется над уже обработанной (например упорядоченной) выборкой. Например, если в примере ТС получается выборка 10000 записей и к ней сначала применяется рандомное упорядочивание, а затем делается лимит до 20 записей, то логичней сначала sql запросом сделать выборку этих 20 строк, а потом спокойно эти 20 (а не 10000) записей перемешать одной функцией пхп, написанной на Си. Тоже самое можно было бы сделать и с использованием вложенного запроса, но я бы не стал усложнять запрос.
boric вне форума   Ответить с цитированием
Старый 14.07.2009, 13:15   #22
Специалист
 
Регистрация: 18.05.2009
Сообщений: 176
Вес репутации: 188
Zergalius - как роза среди колючекZergalius - как роза среди колючекZergalius - как роза среди колючекZergalius - как роза среди колючек
Отправить сообщение для Zergalius с помощью ICQ
По умолчанию

Цитата:
Сообщение от boric Посмотреть сообщение
...то логичней сначала sql запросом сделать выборку этих 20 строк, а потом спокойно эти 20 (а не 10000) записей перемешать одной функцией пхп...
Может я неправильно понял, но так я буду всё время получать один и тот-же набор записей, пусть даже перемешанный. Строки то тоже надо каждый раз разные выбирать.

Цитата:
Насколько большая база и где она крутится ?
Можно ли LIKE поменять на = ?
Всегда ли этот запрос грузит базу?
Может у вас дырка в скрипте и переменные $num и $catalog не всегда равны тем что вы думаете...
MySQL находится на том же сервере?
Как вы пришли к выводу что именно этот запрос грузит базу?
- База на 200000 записей примерно
- LIKE буду менять, просто лень было изначально через ключи всё делать, сейчас жалею, неучёл что он прилично грузит мускуль, на другом сайте (тот-же хостинг) аналогичный запрос (по id) работает шустро (правда записей в 4 раза меньше).
- Всегда :-)
- нету дырки, уверен, переменные равны тому что я хочу, проверял.
- Мускуль на том-же сервере.
- этот, при отключении сайт намного быстрее грузиться стал, раньше думал что скорость безлимитки маловата (не в москве живу :-) )
Zergalius вне форума   Ответить с цитированием
Старый 14.07.2009, 13:27   #23
Эксперт
 
Регистрация: 05.03.2008
Сообщений: 1,095
Вес репутации: 249
boric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущееboric - прекрасное будущее
По умолчанию

Zergalius
Не заморачивайтесь. В вашем случае проблема в like и именно в %% с слева и справа. Замените like на =, а категории вынесите в отлельную таблицу. Создайте соответствующие индексы.
boric вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ВЧ запрос BossIT Общие вопросы оптимизации 4 02.06.2009 17:21
Помогите составить SQL запрос? Fredy314 Разработка и сопровождение сайтов 7 02.06.2009 09:19
Запрос к MySQL Ulf Разработка и сопровождение сайтов 13 12.05.2009 00:26
Запрос выпал из Яндекса Kubert Общие вопросы оптимизации 3 14.10.2008 13:04
Левый запрос на выплату Сергей Ошибки при работе с системой 7 23.11.2007 19:10


Часовой пояс GMT +3, время: 07:19.