Что лучше? (выборка, скорость)

nl2br

Новичок
Что лучше? (выборка, скорость)

Есть база данных, на данный момент в ней 10000 записей .

Выборка с использованием order by выполняется 0.4693 сек

Без него 0.0009 сек

Даст ли выигрыш в скорости - передача задачи упорядочивания с помошью средств пхп, точнее, работа с массивами.

Или это бред? :)
 

nl2br

Новичок
Пробовали, читали, применяем.

order by идёт по полю count(pid), где поле pid индексное поле.
 

Фанат

oncle terrible
Команда форума
кстати, а чего бы не попробовать сделать 10000 фетчей и посмотреть, сколько времени оно займет?
 

nl2br

Новичок
Фанат
нам нужно 10 записей с самым большим значением поля count(pid)
 

Фанат

oncle terrible
Команда форума
и при чем здесь, сколько вам записей надо?
ты считаешь радостно 0.0009 сек
а 10000 фетчей ты сюда приплюсовал? чтобы в скрипте сортировать?
 

nl2br

Новичок
нет, просто выполнение следующего запроса:

select c.pid,d.title,d.data,count(c.pid) coun from comments c,news d
where c.pid=d.id
group by (c.pid)
order by coun desc limit 0,10

-~{}~ 23.02.05 14:33:

смысл в том, что сильно грузится БД у хостера, вот и думаем стоит ли переносить нагрузку на пхп

-~{}~ 23.02.05 14:34:

или можно оптимизировать запрос?
 

Фанат

oncle terrible
Команда форума
вот и думаем стоит ли переносить нагрузку на пхп
мля.
ну чё тут думать?!
сколько ты времени собрался думать? Неделю? Год?
А взять и попробовать - сначала 10 тыщ фетчей, а потом попросить пых отсортировать массив такой.
Может быть, тогда все размышления пропадут, а?
А опыта - СОбСТВЕННОГО, НЕ ДЯДИНОГО - прибавится?

-~{}~ 23.02.05 14:41:

или можно оптимизировать запрос?
о команде Explain слышали?
select c.pid,d.title,d.data,count(c.pid) coun from comments c,news d
where c.pid=d.id
group by (c.pid)
order by coun desc limit 0,10
зачем было обманывать сначала?
у вас тут джойн, а никакая не сортировка.
можно узнать, сколько времени занимает ТО. О ЧЕМ ПИСАЛИ - а именно простой вопрос с сортировкой?
 

nl2br

Новичок
если я правильно тебя понял:
select c.pid,d.title,d.data,count(c.pid) coun from comments c,news d
where c.pid=d.id
group by (c.pid)

0.0015 сек

select c.pid,d.title,d.data,count(c.pid) coun from comments c,news d
where c.pid=d.id
group by (c.pid)
order by coun desc limit 0,10

0.4696 сек
 

Фанат

oncle terrible
Команда форума
БЕЗ джойна
просто сортировка одной раблицы комментс по каунт(пид).
 

nl2br

Новичок
SELECT c.pid, count( c.pid ) coun
FROM comments c
GROUP BY (
c.pid
)
ORDER BY coun DESC
LIMIT 0 , 10

----
0.0155 сек

да, помогло, оч сильно, но
следующий запрос:

select c.pid,d.title,d.data,count(c.pid) coun from comments c,news d
where c.pid=d.id
group by (c.pid)
----
0.0015 сек

может тогда лучше
отсортировать и выбрать 10 значений с помощью пхп?
 

Фанат

oncle terrible
Команда форума
блин, опять 25.
такое ощущение, что я со стенкой разговариваю.
может тогда лучше
отсортировать и выбрать 10 значений с помощью пхп?
слушай, ты мои ответы на тему "отсортировать в пхп" вообще читал?
 

Фанат

oncle terrible
Команда форума
так, с сортировкой в пхп разобрались.
а с самой задачей как решил сделать?
запрос к комментам + 10 запросов к ньюсам?
Или будешь експлейном старый запрос тюнить?
 

nl2br

Новичок
запрос к комментам + 10 запросов к ньюсам?
так и сделали.

-~{}~ 23.02.05 16:02:

а есть проги для проверки нагрузки на мускул определённых запросов и всех вместе, т.е. динамической страницы в целом?
для контроля.
желательно со статистикой :)
 

Фанат

oncle terrible
Команда форума
прога для контроля одного запроса называется EXPLAIN
прога для контроля страницы пишется руками и смотрится глазами
 
Сверху