andrey888
25.10.2013 - 18:59
CoopeR
Сказать по чесноку . не проверял сам на скорость , но доверился советам опытных MySQL разработчиков ..
Не помню точно что смотрел, (вебинар какой нить) или читал (книжку какую нить) . Но в моем мозгу прочно засело, что за "*" в запросе БД-оптимизаторы отрывают руки ))).. после которого в своих проектах на внешних страницах (не для админа или модератора) везде убрал этот симпотишный значек "*" и поставил конкретные поля для выборки.
_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Дело тут не в скорости особо. Недерменированные запросы жрут память. Но и это фигня по большому счету. Тут больше важна читабельность. Пойди разбери, что где вернулось. Каждый раз в базу лазить, смотреть назвния ячеек...
Звездочка хороша, если есть сопутствующая документированность. А это, на сколько мне известно, слабо возможно при использовании phpdoc. А внутрь лезть - моветон. Инкапсуляция.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Цитата (CoopeR @ 25.10.2013 - 09:33) |
лучше добавить 1 запрос в базу который подсчитает колл статей с определённым id (через count()) или добавить в таблицу с меню 1 поле в который из админку будет добавляться +1 |
Лучше читать документацию по SELECT в которой есть упоминание о SQL_CALC_FOUND_ROWS.
https://dev.mysql.com/doc/refman/5.0/en/inf...tion_found-rows
Цитата (Guest @ 25.10.2013 - 16:51) |
Цитата (CoopeR @ 25.10.2013 - 09:33) | лучше добавить 1 запрос в базу который подсчитает колл статей с определённым id (через count()) или добавить в таблицу с меню 1 поле в который из админку будет добавляться +1 |
Лучше читать документацию по SELECT в которой есть упоминание о SQL_CALC_FOUND_ROWS. https://dev.mysql.com/doc/refman/5.0/en/inf...tion_found-rows |
А лучше вникнуть в вопрос, чем советовать не ту оперу.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
DedMorozzz
25.10.2013 - 22:19
Цитата (Guest @ 25.10.2013 - 19:51) |
Лучше читать документацию по SELECT в которой есть упоминание о SQL_CALC_FOUND_ROWS. |
И расскажи ка нам, как он работает...
Цитата |
добавить в таблицу с меню 1 поле в который из админку будет добавляться +1 |
Зависит от того, как часто будет требоваться этот самый каунт и размер таблицы.
Для примера - в текущем проекте, я обновляю статы сразу целого ряда статистик. Но делаю это через триггер
Если таблица большая (пару млн записей) - каждый раз считать, это не вариант(если myisam - это будет быстрее, чем иннодб, но всё равно)
Так что всё зависит от доп. данных
_____________
Если не говорить пользователям, что Linux это "Сложно и страшно", то им совершенно всё равно, в чём не разбираться
Гость_Alan
26.10.2013 - 01:08
andrey888
Цитата |
CoopeR Сказать по чесноку . не проверял сам на скорость , но доверился советам опытных MySQL разработчиков .. Не помню точно что смотрел, (вебинар какой нить) или читал (книжку какую нить) . Но в моем мозгу прочно засело, что за "*" в запросе БД-оптимизаторы отрывают руки ))).. после которого в своих проектах на внешних страницах (не для админа или модератора) везде убрал этот симпотишный значек "*" и поставил конкретные поля для выборки. |
Да, там вроде это относится к таблицам с движком InnoDB, специфика подсчёта с выборкой всех полей (*). Если по первичному ключу, так как он сам по себе является индексом, производится подсчёт по индексированным частям что в разы меньше и быстрее.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.