MySQLi или много СУБД?

  • 28 Ответов
  • 13488 Просмотров

Neon

  • Сообщений: 932
    • Просмотр профиля
    • Danneo CMS
MySQLi или много СУБД?
« : 13 Мая 2016, 10:45:58 »
Вопрос и простой и сложный.
Переходить или нет на поддержку нескольких баз данных, или оставаться на MySQL?
Давайте обсудим.

Ответы типа "да конечно", "я за PDO" и тому подобное, без развернутого объяснения и реальных предложений будут удаляться.
Поговорим серьезно.
« Последнее редактирование: 13 Мая 2016, 11:11:10 от Neon »
DANNEO ™

Staf4

  • Сообщений: 240
    • Просмотр профиля
    • viastyle.org
Re: MySQLi или много СУБД?
« Ответ #1 : 13 Мая 2016, 12:41:02 »
А какие минусы поддержки того же sqlite этого ты видишь?
Если на системе делать сайты-визитки, то это упростит работу с ними на этапе установки и бэкапа системы.
Как минимум, часть других систем поддерживают выбор mysql и mysqli.  Если даже делать их поддержку, то это уже разработка поддержки нескольких типов.
Говори минусы, обсудим
Пингвины ходят голышом

Neon

  • Сообщений: 932
    • Просмотр профиля
    • Danneo CMS
Re: MySQLi или много СУБД?
« Ответ #2 : 13 Мая 2016, 12:55:56 »
А что я могу сказать, если я даже не тестировал SQLite. Все времени не было.
Это, ты говори про плюсы. У тебя из присутствующих, самый богатый опыт по работе с этой СУБД.

Мне только не хотелось бы, чтоб это был костыль, с коленки, лишь бы подключить одну дополнительную базу.
Если делать, то с расчетом на возможность добавления других драйверов, без проблем.
DANNEO ™

Staf4

  • Сообщений: 240
    • Просмотр профиля
    • viastyle.org
Re: MySQLi или много СУБД?
« Ответ #3 : 13 Мая 2016, 14:07:03 »
Начну с минуса: низкая скорость записи в базу.
А плюсы:
- высокая скорость чтения из базы (судя по гуглунию - выше, чем у mysql).
- удобная установка - не нужно лезть в pmy или на хостинг, создавать бд+юзера.
- удобный перенос/бэкап сайта - все в файлах, все красиво.
Пингвины ходят голышом

jek

  • Сообщений: 60
    • Просмотр профиля
Re: MySQLi или много СУБД?
« Ответ #4 : 14 Мая 2016, 16:12:26 »
Недостатки:
- Не годится для работы с крупными проектами.
- Разная совместимость версий.
- Плохо работает на больших транзакциях (условно, если транзакция больше 50 Мбайт).
- Ограниченное количество столбцов по дефолту (2000).
- Блокирует всю базу при обновлении.. . да так блокирует, что даже прочитать из нее не получится.
- Не рассчитан на работу нескольких пользователей одновременно, являтся базой для одного приложения - одного пользователя.
« Последнее редактирование: 14 Мая 2016, 16:25:55 от jek »

Staf4

  • Сообщений: 240
    • Просмотр профиля
    • viastyle.org
Re: MySQLi или много СУБД?
« Ответ #5 : 14 Мая 2016, 23:02:15 »
- Не годится для работы с крупными проектами.
годится. поддерживаются файлы базы размером 32 ТБ.  если имеется в виду скорость работы, то как писал ранее - запись медленнее, чтение - быстрее.
- Разная совместимость версий.
мы говорим о третей версии, работа через pdo.  вторая версия думаю неактуальна.
- Плохо работает на больших транзакциях (условно, если транзакция больше 50 Мбайт).
ну и как это связано с даннео?  запросы даннео оптимизированы.  если у вас запросы несколько десятков метров - проблема в вашем коде, а не в базе.  неактуально.
- Ограниченное количество столбцов по дефолту (2000).
столбцов, не строк, карл.  максимальное кол-во столбцов в таблицах даннео не больше 20-25.  неактуально.
- Блокирует всю базу при обновлении.. . да так блокирует, что даже прочитать из нее не получится.
блокирует ее и при записи, и при обновлении.  любая адекватная субд блокирует базу в таких случаях, иначе получаемые данные могут стать неактуальными, или вообще база может поломаться.
разрешение чтения из бд при записи, возможно, решается настройками.
- Не рассчитан на работу нескольких пользователей одновременно, являтся базой для одного приложения - одного пользователя.
рассчитана.  при записи бд блокируется, при разблокировке выполнится следующий в очереди запрос.

Поймите, что речь идет не о переходе даннео с mysql на sqlite, а предоставление продвинутому пользователю выбора, на какой бд делать сайт.
Никто не обязывает вас делать крупный магазин на даннео используя sqlite. Но лично у меня есть несколько маленьких проектов на sqlite, и пользоваться им офигенно удобно.
Пингвины ходят голышом

jek

  • Сообщений: 60
    • Просмотр профиля
Re: MySQLi или много СУБД?
« Ответ #6 : 15 Мая 2016, 16:42:55 »
Staf4, соглашусь, для небольших проектов, портфолио, будет в самый раз.

jek

  • Сообщений: 60
    • Просмотр профиля
Re: MySQLi или много СУБД?
« Ответ #7 : 16 Мая 2016, 17:22:57 »
Я бы предложил рассмотреть percona sql.

Staf4

  • Сообщений: 240
    • Просмотр профиля
    • viastyle.org
Re: MySQLi или много СУБД?
« Ответ #8 : 17 Мая 2016, 10:55:33 »
Я бы предложил рассмотреть percona sql.
судя по описанию, это форк mysql и она полностью совместима с таблицами innodb.  т.е. по идее переделывать придется минимально, все запросы остаются те же.
сюда же можно добавить и madiaDB, тоже форк mysql, и тоже вроде как совместима с mysql.
думаю все это добавить будет не сложно (главное уговорить Неона добавить базовый функционал для работы с разными субд, а дальше уже дело техники и тестеров)
Пингвины ходят голышом

jek

  • Сообщений: 60
    • Просмотр профиля
Re: MySQLi или много СУБД?
« Ответ #9 : 18 Мая 2016, 09:05:56 »
судя по описанию, percona sql форк mysql и она полностью совместима с таблицами innodb.  т.е. по идее переделывать придется минимально, все запросы остаются те же.
сюда же можно добавить и madiaDB, тоже форк mysql, и тоже вроде как совместима с mysql.
думаю все это добавить будет не сложно (главное уговорить Неона добавить базовый функционал для работы с разными субд, а дальше уже дело техники и тестеров)
Неон вроде всегда поддерживает здравые мысли!
« Последнее редактирование: 18 Мая 2016, 09:08:15 от jek »

Staf4

  • Сообщений: 240
    • Просмотр профиля
    • viastyle.org
Re: MySQLi или много СУБД?
« Ответ #10 : 01 Июня 2016, 09:25:55 »
Neon, Не понимаю, что плохого, если использовать одноименную переменную настроек на морде и в админке? Ведь по идее настройки берутся из базы и в целом выглядят очень похоже, за исключением всяких блоков, которые в админке не нужны.
Одно имя переменной настроек решило бы пару моментов.
Какие у тебя мысли по объединению файлов классов бд и добавлению поддержки других субд?
Пингвины ходят голышом

Neon

  • Сообщений: 932
    • Просмотр профиля
    • Danneo CMS
Re: MySQLi или много СУБД?
« Ответ #11 : 01 Июня 2016, 17:39:16 »
Цитировать
Не понимаю, что плохого, если использовать одноименную переменную настроек на морде и в админке?
А зачем в публичной части сайта светить все имеющиеся настройки? Ведь $config находится в глобальной видимости.
Тогда и пароль в адмику не нужен, открыть да и все. Зачем мучиться с этой безопасностью? Ни кому не нужной, и только мешающей легко и просто работать.
DANNEO ™

Neon

  • Сообщений: 932
    • Просмотр профиля
    • Danneo CMS
Re: MySQLi или много СУБД?
« Ответ #12 : 01 Июня 2016, 17:42:43 »
Цитировать
Какие у тебя мысли по объединению файлов классов бд и добавлению поддержки других субд?
Я только ЗА, но это должно быть продумано и оправдано. А не сделано на коленке, быстрое решение одной проблемы, без учета всех подводных камней. Которое может привести к непредсказуемым проблемам в дальнейшем.
DANNEO ™

Staf4

  • Сообщений: 240
    • Просмотр профиля
    • viastyle.org
Re: MySQLi или много СУБД?
« Ответ #13 : 02 Июня 2016, 09:51:21 »
А зачем в публичной части сайта светить все имеющиеся настройки? Ведь $config находится в глобальной видимости.
светиться ничего не будет, содержимое переменной настроек будет идентично текущей, просто ее имя другое, чтоб можно было общие классы использовать.  с безопасностью ничего никак не связано. только одинаковое имя переменной настроек у админки и морды сайта.
Пингвины ходят голышом

Neon

  • Сообщений: 932
    • Просмотр профиля
    • Danneo CMS
Re: MySQLi или много СУБД?
« Ответ #14 : 02 Июня 2016, 16:26:28 »
Цитировать
светиться ничего не будет, содержимое переменной настроек будет идентично текущей, просто ее имя другое, чтоб можно было общие классы использовать.
Staf4, давай не будем использовать общие классы.
Раз, у нас админка полностью отделена от сайта, из этого и надо исходить.
Максимум общие, сторонние библиотеки JS.
DANNEO ™