Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Архитектура БД [2]
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Архитектура БД

Страниц (5): « 1 [2] 3 4 5 »
 

16. vanicon - 28 Июня, 2013 - 19:03:05 - перейти к сообщению
armancho7777777
Спор зашел в тупик.
armancho7777777 пишет:
InnoDB по барабану.
С грамотной расстановкой индексов полей он Вам выплюнет на раз-два.

Ну если 1-2 тыс запрос в секунду то да может справиться, но а если 10-20 тыс, то вот такие вот запросы и нагрузят бд, и опять же речь идет о описании категорий...
17. armancho7777777 - 28 Июня, 2013 - 19:03:17 - перейти к сообщению
vanicon пишет:
но это же костыль

Что ??? Радость
18. vanicon - 28 Июня, 2013 - 19:04:27 - перейти к сообщению
armancho7777777 пишет:
Что ???

А можно объяснить смысл использования в данном случае хранимых процедур?
19. armancho7777777 - 28 Июня, 2013 - 19:19:39 - перейти к сообщению
vanicon пишет:
А можно объяснить смысл использования в данном случае хранимых процедур?
vanicon пишет:
но а если 10-20 тыс таких запросов
20. vanicon - 28 Июня, 2013 - 19:21:48 - перейти к сообщению
armancho7777777
Не не то, я имею ввиду каким образом хранимые процедуры тут этот процесс сгладят.
Можно на пальцах...
21. armancho7777777 - 28 Июня, 2013 - 19:23:54 - перейти к сообщению
vanicon, Вы может у гугла спросите?
Терпеть не могу объяснять людям что-то,
которые не знают и спорят, спорят...
(Добавление)
Спорите, утверждаете, но даже не знаете что mysql запросы кеширует.
Об остальном я уже и не заикаюсь.
22. vanicon - 28 Июня, 2013 - 19:30:38 - перейти к сообщению
armancho7777777
Конечно могу, но чуть позже...
armancho7777777 пишет:
Терпеть не могу объяснять людям что-то,
которые не знают и спорят, спорят...

А вот в этом месте можно по подробнее, где вы считаете что я не то пишу, мне же тоже интересно где можно сделать лучше и т.п, насчет хранимых процедур и масштабируемости пишут что две несовместимые вещи, сам не пробовал, но думаю что верно, как вы считаете?
Также хочется прочитать ответ на вопрос, конкретнее к теме, вы и правда считаете что вынос подобного поля в отдельную таблицу это правильно?
23. EuGen - 28 Июня, 2013 - 19:31:24 - перейти к сообщению
Начиная с версии 5.6 InnoDB поддерживает полнотекстовый поиск. Поэтому, если я верно понял суть спора - то он не имеет смысла.
24. vanicon - 28 Июня, 2013 - 19:32:21 - перейти к сообщению
armancho7777777 пишет:
Спорите, утверждаете, но даже не знаете что mysql запросы кеширует.
Об остальном я уже и не заикаюсь.

Я знаю что запросы кэшируются, но разницы большой нет, я считаю вынос в отдельную таблицу неверным шагом, и разницы нет когда mysql рухнет...
25. armancho7777777 - 28 Июня, 2013 - 19:34:25 - перейти к сообщению
EuGen пишет:
Начиная с версии 5.6 InnoDB поддерживает полнотекстовый поиск

Не знал.
Радует ))
26. vanicon - 28 Июня, 2013 - 19:35:19 - перейти к сообщению
armancho7777777
Ну теперь наверно с версии 5.6 смысла выносить в отдельную таблицу уже нет да?
27. armancho7777777 - 28 Июня, 2013 - 19:42:06 - перейти к сообщению
Ну конечно нет ))
Да, это было неприятная особенность этого движка.
Единственное что, не все хостеры обновились.
28. EuGen - 28 Июня, 2013 - 19:45:18 - перейти к сообщению
Отвечая на вопрос про поиск - я бы использовал Sphinx. Просто потому, что он для этого предназначен. Он имеет возможность искать независимо от окончания (в том числе множественные словоформы, окончания которых нестандартны) и снимает нагрузку с СУБД. Если быть более корректным, то он не снимает эту нагрузку совсем, но позволяет выделить удобное время для индексирования, тем самым снизив нагрузку в критичные часы.

Насчёт варианта вынесения поля - не очень понял, где порождается "тяжёлый запрос" (LEFT JOIN по PRIMARY KEY тяжёлый?) Не очень понятно и то, что заставляет считать хранимые процедуры немасштабируемым решением. Можно, конечно, написать код так, что он будет работать только на небольших таблицах, однако же это нужно постараться (или - напротив - совсем не стараться и написать непрофессионально). Дело другое - то, что я не знаю, зачем использовать хранимые процедуры для поиска. Здесь уже явно напрашивается сторонний поисковый движок - например, тот же Sphinx. Как правило, для Sphinx требуется написание VIEW, но не процедуры.

Иногда, кстати, даже рекомендуется вертикальное партиционирование таблиц (то есть вынесение части таблицы в другую по связи 1:1) - например, если вспомнить, что в MySQL предельно допустимый размер строки вместе со всеми указателями и разделителями есть 65536 байт. Или если в таблице есть объёмные поля, которые меняются редко, тогда как другие - запрашиваются часто - примеров можно придумать много.
29. vanicon - 28 Июня, 2013 - 19:46:52 - перейти к сообщению
armancho7777777
Прошу прощение если чем то задел, в любом случае спор закончен, просто смотрел как в других cms, да и сам не видел смысла почему вы утверждали что нужно выносить в другую таблицу какое-то поле, поэтому настаивал на своем...
30. Hapson - 28 Июня, 2013 - 19:50:53 - перейти к сообщению
То есть я так понял, что все валить в большие таблицы?
Категории, статьи, комменты, пользователи...
Так?
А как же нормализация?

 

Powered by ExBB FM 1.0 RC1