с единственной оговоркой. был создан индекс на все поля таблицы. если его удалить, то разница практически исчезает.
__________________________________ DarkElf[11] - В России реальный запрещающий знак только один - большой бетонный блок посреди дороги. Все остальные предупреждающие: возможно за проезд придется заплатить.
разовое измерение, индексировано только поле ID (как primary_key)
Показывает записи 0 - 0 (1 всего, Запрос занял 0.0119 сек)
SQL-запрос:
SELECT users.name, count( msg.author_id )
FROM msg, users
WHERE msg.author_id LIKE users.id
GROUP BY msg.author_id
ORDER BY `count( msg . author_id )` DESC
LIMIT 0 , 30
Показывает записи 0 - 0 (1 всего, Запрос занял 0.0230 сек)
SQL-запрос:
SELECT users.name, count( msg.author_id )
FROM msg, users
WHERE msg.author_id = users.id
GROUP BY msg.author_id
ORDER BY `count( msg . author_id )` DESC
LIMIT 0 , 30
далее - создан индекс на оба поля.
Показывает записи 0 - 0 (1 всего, Запрос занял 0.0220 сек)
SQL-запрос:
SELECT users.name, count( msg.author_id )
FROM msg, users
WHERE msg.author_id = users.id
GROUP BY msg.author_id
ORDER BY `count( msg . author_id )` DESC
LIMIT 0 , 30
Показывает записи 0 - 0 (1 всего, Запрос занял 0.0133 сек)
SQL-запрос:
SELECT users.name, count( msg.author_id )
FROM msg, users
WHERE msg.author_id LIKE users.id
GROUP BY msg.author_id
ORDER BY `count( msg . author_id )` DESC
LIMIT 0 , 30
число записей в таблице пользователей - 6, сообщений - 5000.
__________________________________ DarkElf[11] - В России реальный запрещающий знак только один - большой бетонный блок посреди дороги. Все остальные предупреждающие: возможно за проезд придется заплатить.
увеличение числа записей в таблице msg в 5 раз привело к росту где-то в 20 раз времени исполнения запроса с прежним соотношением времени исполнения.
__________________________________ DarkElf[11] - В России реальный запрещающий знак только один - большой бетонный блок посреди дороги. Все остальные предупреждающие: возможно за проезд придется заплатить.
здесь ключевым фактором является не увеличение msg, а увеличение user
сделайте 5000 юзеров и запустите...
хотя и это какие-то смешные цыфры... а миллионы записей не хотите?... или реальность ваших проектов (с учетом перспектив) такова, что там будут 6 пользователей читать свои 5 тыщ сообщений... обращаясь к бд 100 раз в день (а не в секунду)
так, для справки, я НЕ являюсь разработчиком скриптов данного портала.
пользователей, хорошо, увеличу вечером число пользователей.
__________________________________ DarkElf[11] - В России реальный запрещающий знак только один - большой бетонный блок посреди дороги. Все остальные предупреждающие: возможно за проезд придется заплатить.
да дело не в этом портале вовсе. вопрос в грамотности разработки как таковой. как бы вам получше объяснить...
давайте я вам приведу пример задачи и решения для аналогии того как вы пользуетесь инструментом:
итак, нужно решить задачу сколько будет 382+136.
Вы берете бумагу, записываете пример, потом сканируете, запускаете файнридер, распознаёте, потом в маткад и готов ответ.
Разумеется весь приведенный выше инструментарий даёт гораздо больше возможностей для решения, чем решение в уме (или на калькуляторе, если нужно считать много). тем не менее - это абсурд!
понимаете?
такой же, как сравнение числовых ключей, с помощью like
....
если вы еще не чувствуете к чему такая вопиющая безграмотность может привести, то только от того, что имеете дело с 6-ю записями в 1-й таблице и 5-ю тысячами в другой. в реальности (когда проект разрастётся или просто сразу будете делать проект под серьёзную посещаемость) такие косяки выйдут вам боком, а вы (поскольку наивно полагаете, что сравнение числа 255, которое занимает 1 байт и строки "255", которая занимает 3(!) байта, есть эквивалентные операции) будете валить всё на кривое оборудование хостера, нехватку мощностей и т.д.
м, при увеличении числа записей до 2 и 200 тыс соответственно, разница - в 100 с лишним раз в пользу "=".
thaon
видимо, Вы правы.
век живи, век учись.
__________________________________ DarkElf[11] - В России реальный запрещающий знак только один - большой бетонный блок посреди дороги. Все остальные предупреждающие: возможно за проезд придется заплатить.
надеюсь эти выводы помогут вам внимательнее относиться к собственным разработкам. Если что - обращайтесь, могу помочь советом по БД и веб-разработкам в частности.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах