Подтвердить что ты не робот

Действительно ли MySQL это плохо?

Я просто читал этот пост на ars technica " Неужели MySQL это плохой? и был действительно удивлен, что большинство людей, похоже, согласны с тем, что MySQL действительно плохой.

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

4b9b3361

Ответ 1

Я использовал MySQL и все еще использую Oracle, а MySQL так же плох, как и делает это. Означает ли это, что никто не должен его использовать? Я так не думаю.

У нас было несколько приложений, которые были крошечными (одна или две таблицы, не более 50 тыс. строк), и вместо того, чтобы использовать Oracle (который в то время не был разрешен из-за лицензирования), мы разработали MySQL. По всем причинам, изложенным в теме форума: бесплатный, простой в установке, простой в управлении, бесплатный, а не много накладных расходов.

Теперь это вернулось в дни 3.23.x, когда таких вещей, как InnoDB или FK или любой другой материал, не было. И за то, что нам было нужно, он работал отлично. Он легко вставлял, обновлял и т.д., Никогда не искажался, хорошо восстанавливался с ленты, все.

Но тогда приложениям, которым он управлял, не нужно было запускать Oracle или SQL Server. Все, что мне нужно было сделать (как должен был быть любой хороший программист) - проверить мои данные, убедитесь, что я использую транзакции по мере необходимости (на уровне приложения, а не в MySQL, потому что в те дни он не был совместим с ACID) и это было в значительной степени.

Лучшая часть - одно приложение, в частности, было написано в 2002 году. Последнее, что я проверил, он все еще работает 6 лет спустя, все еще на MySQL (я думаю, что это сейчас 4.1 или что-то еще) и все еще делает именно то, что он написал.

Итак, да, это отстой для электронной коммерции, банковского дела или хранилища данных любого большого разнообразия (тоже попробовал). Но если вам нужно быстрое приложение Recipe Box или какое-то другое малое приложение, тогда MySQL будет работать нормально.

Я имею в виду, что MySQL оставляет его в корне как простую, быструю небольшую СУБД в пользу триггеров, ограничений, FK и т.д. Я думаю, что там, где сосание MySQL входит в игру. Если ваши требования к БД просты, MySQL будет работать 10 раз из 10. По крайней мере, это был мой опыт.

Ответ 2

Люди не жалуются на то, что они не используют.

Ответ 3

Для больших и сложных систем, да, есть достаточно ошибок/причуд, которые могут вызывать их уродливые головы. Я убежден, что причина, по которой люди обычно идут с MySQL над PostgreSQL, состоит в том, что имя "MySQL" намного больше привлекательным.

Почему PostgreSQL выбрал барьер, даже способный произнести их имя, которое я никогда не узнаю - весь раздел страницы wikipedia PostgreSQL посвящен Имя PostgreSQL.

Ответ 4

Многие люди клянутся MySQL. Многие из нас просто клянутся в этом.

Всегда есть идея, что вам не понадобятся некоторые функции, предлагаемые другими системами баз данных... но тогда они вам понадобятся.

Самые последние для меня были контрольные ограничения. Я действительно нуждался в контрольных ограничениях, потому что в моей БД люди постоянно меняли столбцы долготы и широты. Я добавил ограничение в нескольких местах, а затем обнаружил, что он просто игнорируется. Вызвал боль.

Другая вещь, которая меня убила, - это освобождение от многих транзакций - в первую очередь изменений схемы. Почему я не могу изменять или переименовывать таблицы и откатывать их обратно, если мне не нравится, что произошло?

Ответ 5

Это действительно зависит от того, что вы ожидаете. Большинство из этих проблем на самом деле не являются ошибками с MySQL, но так, как они всегда работали (сохраняя обратную совместимость) - как это документировано работать.

Некоторые проблемы, с которыми у автора возникают проблемы, могут быть исправлены с использованием строгого режима MySQL 5.0 - однако вы не хотите этого делать, если используете устаревшее приложение, не созданное для работы со строгим режимом, так как вы "Я получаю ошибки, которые ваше приложение не ожидает.

Ответ 6

Я работал с одним приложением, которое могло бы использовать любые основные БД: MSSQL, Oracle, MySQL, Informix, DB2, Sybase и т.д.

От них все самое проблематичное для поддержки было оракулом. Но в целом все из них (включая оракул) были очень просты в работе, поскольку в приложении использовались очень простые операторы SQL.

Должны ли все перестать использовать MySQL?

Ну, это зависит от того, какой инструмент лучше соответствует вашим потребностям.

Многие организации выбирают одну БД, и они будут с ней до конца.

Однако одна вещь, которая очень интересна, заключается в том, что некоторые из наиболее важных компаний в Интернете используют ее:

  • Google
  • eBay
  • Yahoo!

И они не используют его для процесса HR, но для ядра (я попытаюсь получить цитату для этого)

В то же время, вот список клиентов MySQL.

http://www.mysql.com/customers/#e-Commerce

Некоторые другие:

  • Amazon
  • Facebook
  • Flickr
  • Youtube

Это была одна из причин того, что Sun покупала MySQL для почти 1 миллиард долларов. Кроме того, таким образом Sun может конкурировать с MS с Сервер MSSQL +.net и Oracle + Weblogic

Если вы видите, что у них есть как серверы приложений, так и база данных, Sun не хватает БД и решил купить его.

Конечно, не все компании такие большие, и для некоторых закрытых бизнес-приложений MSSQL и Oracle очень приветствуются.

РЕДАКТИРОВАТЬ Argh... Я не могу найти ресурсы, которые это четко определяют (без необходимости читать много страниц). Единственный, что я нашел, - это Wikipedia http://en.wikipedia.org/wiki/Wikipedia#Software_and_hardware

Ответ 7

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

В статье указаны проблемы с:

  • Auto-increment переопределяет явно
  • Недопустимые значения DATETIME, DATE или TIMESTAMP преобразуются в "нуль"
  • ALTER TABLE для таблицы InnoDB приводит к изменениям значений столбцов
  • Переименованный столбец не обновляет определения FK
  • ...

Если вы не выполняете этот тип операций, чем MySql в порядке. Я использую PostGres и MySql... Я думаю, что MySql становится настолько популярным, что он доступен для многих хостинг-провайдеров, а не для PostGres. Но, при необходимости, у меня нет проблем с использованием MySql. Я бы не выбрал его, если у меня есть все варианты, но это наверняка не плохой продукт...

Ответ 8

MySQL бесплатный, быстрый, простой в установке и работает для простых приложений. Это наследие MySQL, и почему оно стало популярным.

MySQL развивается за пределами своего "небольшого движка базы данных", который может "происходить", пытаясь очень сильно разрушить традиционный высокопроизводительный рынок РСУБД и принять доминирующее трио Oracle, MS SQL Server и IBM DB2. Таким образом, рынок теперь с большей вероятностью сравнивает MySQL с "большими мальчиками", а не с другими проектами выскочки. Недостатки MySQL, естественно, кажутся менее проворными в этом свете.

PostgreSQL долгое время считался основным конкурентом MySQL, поскольку оба являются open-source. PostgreSQL, возможно, является превосходной реализацией SQL, но имеет более крутую кривую обучения. Он также не смог обеспечить собственный порт Win32 на пару критических лет, в течение которых MySQL установил большую долю рынка. PostgreSQL никогда не занимался маркетинговыми усилиями, чтобы компенсировать эту потерю.

Ответ 9

MySQL фокусируется на скорости и масштабировании с помощью аппаратного обеспечения. Другие бренды RDBMS фокусируются на различных наборах функций, таких как стабильность и стандарты. Вы должны прочитать это интересное сравнение между postgresSQL и MySQL, которое действительно расширяет важные отличия.

MySQL имеет свое использование, и, будучи довольным клиентом, у меня есть только (в основном?) хорошие вещи, чтобы сказать об этом.

Ответ 10

Большинство проблем MySQL доходит до конфигурации. Вы можете сказать, что он строг с недопустимым вводом или говорит ему использовать механизм хранения с внешними ключами, но причина, по которой он получает плохую репутацию, заключается в том, что по умолчанию он крайне слабый.

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

Ответ 11

Эта проблема с MySQL заключается в том, что они начались с неправильного места. Еще в тот момент, когда MySQL был просто набором индексированных файлов, которые вы могли запустить (элементарный) SQL Engine. У него не было транзакций, ограничений, процедур, триггеров, подзапросов или практически ничего другого, что делает реальную СУБД реальной базой данных.

Даже тогда у него были фанаты, и всякий раз, когда вы рассказывали им об этом, их запасные ответы были: (a) вы все равно должны кодировать все эти вещи в логике приложения и (б), но посмотрите, насколько это ослепительно быстро (а это было, учитывая, что он ничего не делает).

Совсем недавно, однако, MySQL видел свет и прививал многое из вышеперечисленного. Беседы с фанатами теперь обычно идут по линиям "но MySQL hs тоже!" Теперь я уверен, что существует много ярких кодеров, работающих в MySQL, но, как мы все знаем, программы, которые имеют функции, привитые ретроспективно, а не созданные с нуля, более подвержены ошибкам, ошибкам и непоследовательному поведению.

Какая полученная мудрость говорит нам, что мы имеем (игнорируя фанатов).

Лично я гораздо более склонен использовать MySQL сейчас, чем раньше, чем до 5-й версии, и я уверен, что с учетом усилий, которые он вкладывает в него примерно раз в 7-й версии, он может быть вполне заслуживающим доверия для критически важных приложений. Тем временем DB2, Oracle, MSSQL и Postgres являются более мудрым выбором для критически важных приложений, поскольку все они построены как настоящие RDBMS "от go" и позволяют вам спокойно спать ночью, зная, что ваши данные полностью безопасны. MySQL - отличное решение в областях, на один или два шага назад.

Ответ 12

  • Мне было любопытно, действительно ли это важно для большинства приложений? -Нет. Это не имеет большого значения.
  • Должны ли все прекратить использование MySQL?
    • Ни в коем случае.
  • Мне бы очень хотелось услышать от людей, которые работали с различными базами данных.

Вот мои переживания. Меня учили в колледже, а затем Access в базовом классе компьютерного офиса. Это были мои "первые базы данных". Теперь я не могу достаточно кричать "EXCEL - НЕ БАЗОВАЯ БАЗА!!!" Позже, когда я взял класс базы данных, нас научили Mysql. Поэтому, естественно, когда я вышел в реальный мир , я использовал то, что знал.

Я работаю в веб-компании, которая использует mysql в качестве первичной БД, но почти год назад мы начали работать с данными ГИС и решили использовать PostgreSQL для этой информации. Я с неохотой узнал postgreSQL, и с тех пор мне понравилось, но в то же время это помогло мне оценить mysql еще больше.

Мое мнение таково, что MySQL - это скорее СУБД программистов. В то время как postgreSQL и другие подобные ему СУБД базы данных. Как программист, я люблю Mysql для:

  • Crap in Defaults out.
  • Насколько хорошо он обрабатывает беспорядочные входы.
  • Делайте то, что я имею в виду, а не то, что я говорю (февраль 31 преобразуется в подходящую мартовскую дату).
  • Свобода (она не соответствует строгим стандартам SQL для T).

Я работаю в компании, которая не знала, что такое 1NF, когда я туда попал. Но компания успешна, и, будучи программистом, я доволен выбором СУБД.

Ответ 13

Есть две крайности, где вы найдете недовольных пользователей:

  • Многие люди испытывают MySQL через своего хостинг-провайдера. Те, кто на более дешевом хостинге, как правило, переполнены на массовое перепроданность, недостаточное оборудование и, как результат, имеют плохие впечатления.

  • Тогда есть люди, которым нужны массивные системы со сложными отказами и репликацией. MySQL может масштабироваться, но это не красиво или просто.

Это БД выбора для большинства, потому что это было навсегда, и у него есть много инструментов для того, чтобы тыкать его. Со временем, если Sun ничего не сделает с этим, он будет заменен PostgreSQL или более новой технологией DB.

Ответ 14

Легко вешать на MySQL, но трава не обязательно более зеленее с другими базами данных. Я использую MySQL в настоящее время и использовал Oracle и MS SQL в прошлом, и хотя детали сейчас нечеткие, я помню много раз, много раз обнаруживал ошибки/функции как в Oracle, так и в MS SQL, которые заставляли меня думать, что "люди платят деньги за это?!?". У каждой базы данных много проблем, но по крайней мере вам не нужно платить деньги за проблемы в MySQL...

Дело в том, что на MySQL работают огромные веб-сайты, такие как Digg, Facebook, Flickr, YouTube, Wikipedia и многие другие. Так насколько плохо это могло бы быть...?

Ответ 15

Я боюсь, что это - я много использовал, и я не был доволен тем, что

Ответ 16

Я использую MySQL с 2002 года, и мне всегда нравилось работать с ним. Я помню, как на ранней стадии моей карьеры программирования люди списывали MySQL как базу данных игрушек.

Я понимаю все аргументы против использования MySQL для больших проектов хранилища данных. Вы не хотели бы использовать его, если бы вы строили массовое приложение для кредитных карт.

Сказав, что для большинства вещей в Интернете MySQL отлично справляется с этой задачей. Если у вас есть какие-либо сомнения, просто посмотрите на Википедию, которая построена поверх MySQL и PHP.

Ответ 17

В этом превосходном сравнении с PostgreSQL можно найти другой список причин, по которым MySQL является плохим:

http://www.wikivs.com/wiki/MySQL_vs_PostgreSQL

Ответ 18

Википедия (седьмой по популярности сайт в мире, имеет более двух миллионов статей и более 15 миллионов страниц) построена на MySQL. Это достаточно хорошо для меня:)

Ответ 19

Он работает для моих небольших, нестандартных, не очень интересных проектов, которые не содержат много сильно связанных таблиц.

Ответ 20

Я бы просто выбросил туда несколько сайтов с интенсивной загрузкой, таких как Digg, используя MySQL. В настоящее время я рассматриваю, какой из них лучше подходит для моего (PHP) приложения - MySQL (с которым я больше знаком) или PostgreSQL (у которого меньше поддержки PHP (нет объектно-ориентированной обертки), но кажется, что он проверен и проверен).

Ответ 21

Этот вопрос похож на постоянные вопросы PHP: большинство его "проблем" не являются проблемами для большинства людей, которые его используют.

В среде, в которой у вас есть одно приложение, которое воспроизводится в базе данных - например, на веб-сайте, вы найдете множество проблем, связанных с значениями по умолчанию и ссылочной целостностью, только Go Away, потому что приложение должно заботиться о них в любом случае, Так оно и есть. И тогда это не имеет значения, чем DB не делает.

Просто для ударов PostGreSQL воспринимается как отстающий от SQL в одной очень важной области: репликация. У MySQL есть встроенная репликация, и это в значительной степени работает. Но он не встроен в PostGreSQL: это надстройка, требующая другого уровня настройки и конфигурации. Это неудачное восприятие, но я видел, как он полностью остановил проект, который мог переноситься на PostGreSQL.