Мне бы пригодился. Если перенести весь код, который из-за убогости Мыскля обычно засунут в ПХП, в хранимые процедуры, то любой форум будет работать значительно быстрее.Автор оригинала: fixxxer
Но кому нужен форум, не поддерживающий mysql?
Не представляю что можно перенести в форуме из ПХП в хранимые процедуры.Автор оригинала: Sad Spirit
Мне бы пригодился. Если перенести весь код, который из-за убогости Мыскля обычно засунут в ПХП, в хранимые процедуры, то любой форум будет работать значительно быстрее.
А уж если ещё и схему базы сделать нормальную, а не заточенную опять же под Мыскль и спортированную с него на другие базы...
Я ковырялся в потрошках phpBB, перенести можноАвтор оригинала: Falc
Не представляю что можно перенести в форуме из ПХП в хранимые процедуры.
На эту тему спорить действительно не будем, т.к. нормальных данных из независимых источников у тебя естественно нет.Про скорость работы мускуля и других баз и спорить нечего.
Меня --- никто. А разработчики ПэХэПэ софта обычно пишут под Мыскль, потом уже портируя на другие базы (ибо если делать наоборот, то под Мыскль уже хрен портируешь...).И потом кто тебя заставляет затачивать структуру данных под мускул, не делая их нормальными (хотя одно другому не мешает).
Аргумент от функциональности: а можно средствами InnoDB реализовать ограничение "если удаляется информация о пользователе, то все размещённые им сообщения считаются размещёнными анонимным пользователем"?Автор оригинала: Falc
>>1) Проверку ссылочной целостности
используй таблицы InnoDB и мускул сделает это за тебя.
О, Боги... Прежде чем создавать триггер, надо написать процедуру, которая будет выполняться при его срабатывании. Можно, конечно, и на Ц написать, но не хочется.>>2) Сбор статистики (сделать на триггерах)
Тригеры всетаки это не хранимые процедуры.
ключевое слово "некоторые". то есть всё же существуют случаи, где сложный запрос даст выигрыш над несколькими простыми.>>В коде phpBB, кстати, есть места с комментариями типа "как клёво было бы это сделать одним запросом, если бы Мыскль умел".
phpBB разрабатывался под третий мускул, в четвертом некоторые вещи которые не умел третий можно сделать 1 запросом. А потом не так много вещей, которые нельзя сделать одним запросом на мускуле и которые дают увеличение производительности если сделать в один запрос в другой БД.
Нету. Но что характерно, базар на эту тему я и не начинал.>>На эту тему спорить действительно не будем, т.к. нормальных данных из независимых источников у тебя естественно нет.
Может они есть у тебя? если есть можем проверить.
На структуре сказывается оптимизация под Мыскль. Пример из phpBB: есть таблицы phpbb_posts и phpbb_posts_text, в первой вся информация о сообщении, во второй текст сообщения. Отношение между таблицами 1:1.Да в мускуле довольно скудный синтаксис SQL'я, и отсутствуют хранимые процедуру и тригеры, это накладывает серьезные ограничения на разработку софта, но как это отображется на структуре базы?
Из интересного в письме ещё дата: 26 августа 1998 года.Note that MySQL 4.0 is not that far away; The reason for a new
major release is that we are going to drop the .frm files to have a
file format that is much easier to extend.
This means that MySQL 4.0 will probably only have these major new
features:
- sub-selects
- binary portable tables.
- Grants on tables/columns
- cached inserts (A building block for replication).
Согласен что такое средствами мускула не сделаешь, но на производительность системы это никак не повлияет, так как удаление пользователей это достаточно редкая вешь, да и потом на ПХП это будет просто реализовать и работать будет не сильно медленее чем через хранимую процедуру.Автор оригинала: Sad Spirit
Аргумент от функциональности: а можно средствами InnoDB реализовать ограничение "если удаляется информация о пользователе, то все размещённые им сообщения считаются размещёнными анонимным пользователем"?
Да, но найти не мускульный хостинг, "причём настроенный под нормальное быстродействие", тоже не так просто.Аргумент от хостинга: а что, есть много хостингов, предоставляющих InnoDB, причём настроенный под нормальное быстродействие?
Аргумент не принимаеться, т.к разговор был именно про процедуры, а если у тебя в СУБД есть процедуры, но нет тригеров то такое не сделаешь.О, Боги... Прежде чем создавать триггер, надо написать процедуру, которая будет выполняться при его срабатывании. Можно, конечно, и на Ц написать, но не хочется.
Да согласен, что есть вещи которые в мускуле решаються толпой запросов, вместо одного запроса с подзапросом. Но минусы есть у всех СУБД.ключевое слово "некоторые". то есть всё же существуют случаи, где сложный запрос даст выигрыш над несколькими простыми.
Ну если у нас нет собственных бенчмаков тогда можно воспользоваться чужими результатами, вот крпимеру результаты тестирования компании Mysql AB:Нету. Но что характерно, базар на эту тему я и не начинал.
Не понятно какой код ты хочешь выкидывать из ПХП?А по поводу скорости: скорость работы форума складывается из двух частей: скорости работы базы и скорости работы приложения на ПХП. Если мы выкидываем часть кода на ПХП, то скорость работы приложения, очевидно, ускорится. Если мы перенесём часть логики на базу, то скорость работы приложения опять же ускорится.
На структуре сказывается оптимизация под Мыскль. Пример из phpBB: есть таблицы phpbb_posts и phpbb_posts_text, в первой вся информация о сообщении, во второй текст сообщения. Отношение между таблицами 1:1.
Не знаю как другие базы, а Постгрес подобную оптимизацию делает автоматически => оптимизация не нужна и скорее всего вредна.
Не совсем понял, каккого рода тыимеешь ввиду оптимизацию?
Если хранение динамических столбцов отдельно, от фиксированных, то по мойму такое делают далеко не все СУБД.
Да 4-ый мускул выходил долго, но он все же вышел, хоть и не все в нем реализовано, что было запланированно.В порядке поиздеваться: любителям ждать Мыскль 4.1, 5.0, 6.66 процитирую письмо Michael Widenius из рассылки MySQL developer:
Из интересного в письме ещё дата: 26 августа 1998 года.
Ждать можно что угодно, но работаем с тем что есть, есть конечно не удобства. но эти неудобства есть не тулько у мускула, они есть у любого програмного продукта, будь то СУБД или что-то еще.
P.S.
Сейчас работаю с 2 СУБД MySQL и FireBird, Недостатки и не удобства есть у обоих баз, но на мой взгляд у MySQL их меньше, хотя возможно это из-за привычки к первому.