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

  • Автор темы Автор темы nl2br
  • Дата начала Дата начала

nl2br

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

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

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

Без него 0.0009 сек

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

Или это бред? :-)
 
Пробовали, читали, применяем.

order by идёт по полю count(pid), где поле pid индексное поле.
 
кстати, а чего бы не попробовать сделать 10000 фетчей и посмотреть, сколько времени оно займет?
 
Фанат
нам нужно 10 записей с самым большим значением поля count(pid)
 
и при чем здесь, сколько вам записей надо?
ты считаешь радостно 0.0009 сек
а 10000 фетчей ты сюда приплюсовал? чтобы в скрипте сортировать?
 
нет, просто выполнение следующего запроса:

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:

или можно оптимизировать запрос?
 
вот и думаем стоит ли переносить нагрузку на пхп
мля.
ну чё тут думать?!
сколько ты времени собрался думать? Неделю? Год?
А взять и попробовать - сначала 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
зачем было обманывать сначала?
у вас тут джойн, а никакая не сортировка.
можно узнать, сколько времени занимает ТО. О ЧЕМ ПИСАЛИ - а именно простой вопрос с сортировкой?
 
если я правильно тебя понял:
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 сек
 
БЕЗ джойна
просто сортировка одной раблицы комментс по каунт(пид).
 
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 значений с помощью пхп?
 
блин, опять 25.
такое ощущение, что я со стенкой разговариваю.
может тогда лучше
отсортировать и выбрать 10 значений с помощью пхп?
слушай, ты мои ответы на тему "отсортировать в пхп" вообще читал?
 
так, с сортировкой в пхп разобрались.
а с самой задачей как решил сделать?
запрос к комментам + 10 запросов к ньюсам?
Или будешь експлейном старый запрос тюнить?
 
запрос к комментам + 10 запросов к ньюсам?
так и сделали.

-~{}~ 23.02.05 16:02:

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