Могут ли базы данных с открытым исходным кодом, такие как MySQL, поддерживать загрузку моего веб-сайта?

Я собираюсь начать разработку продукта (в .NET), и я оцениваю движки баз данных с открытым исходным кодом, чтобы избежать добавления затрат на лицензирование к общей стоимости моего продукта.

Какие из них эффективны, как вы знаете? MySQL - хорошая альтернатива? Какую нагрузку на сайт он поддерживает?

Есть ли у вас опыт использования базы данных с открытым исходным кодом в реальных проектах?

Или мне просто нужно использовать Oracle или SQL Server для разработки надежного продукта?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
6
0
1 932
18
Перейти к ответу Данный вопрос помечен как решенный

Ответы 18

MySQL достаточно хорош для Flickr, Facebook, Wikipedia, Google и YouTube, чтобы использовать его (говорит Wiki) - я бы сказал, что каждый из них обслуживает большую нагрузку, чем вы, вероятно, достигнете. Я считаю, что WordPress.com - более четырех миллионов блогов (статистика), включая блоги CNN, Time и т. д. - также использует MySQL.

Oracle / MSSQL определенно не требуются для разработки надежного продукта.

Это немного вводит в заблуждение: Google использует MySQL для некоторых вещей, но поисковая система Google НЕ работает на MySQL.

Joel Coehoorn 30.12.2008 00:39

@Joel: Но это модифицированная и улучшенная версия MySQL. Они построили это на вершине этого. Было бы невообразимо думать, что Google использует Oracle в качестве своей базы данных. Учитывая количество имеющихся у них процессоров и ту конкретную работу, которую они выполняют, было бы невозможно использовать что-то другое.

OscarRyz 30.12.2008 00:48

Конечно, для архитектуры, которую используют ранее упомянутые веб-сайты, база данных является лишь одним из целого. Я имею в виду, что MySQL сам по себе не поддерживает такую ​​нагрузку. Но они это делают из-за своей инфраструктуры. Опять же, стоимость лицензии на процессор, предлагаемая mysql, является ключевой здесь в этой общей картине.

OscarRyz 30.12.2008 00:50

Поисковая система Google, а также большинство ее основных свойств используют собственную базу данных под названием BigTable.

Adam Lassek 30.12.2008 01:59

Сказать, что Google использует MySQL, примерно так же полезно, как сказать, что Google использует Linux, Windows или OS X ...

Matt Rogish 30.12.2008 02:23

Мне нравится этот ответ, но он немного противоречит тому, который мне тоже нравится: stackoverflow.com/questions/398704/…

juan 30.12.2008 05:59

@Matt - если бы кто-то спросил: «Может ли Linux работать на предприятии?», Google стал бы отличным примером того, как Linux работает на предприятии. Я не уверен, о чем вы говорите.

ceejayoz 30.12.2008 06:23

Да, некоторые крупные сайты используют MySQL, но их реальная стоимость работы с SQL Server, DB2 или Teradata сопоставима. На этих сайтах есть специальный персонал по dba для оптимизации всего и разработчиков для создания собственных расширений. Предполагать, что ОП имеет аналогичные ресурсы, - плохое предположение.

mson 30.12.2008 11:10

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

ceejayoz 05.01.2009 00:18

MySql должен подойти для ваших нужд ...

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

У Oracle также есть бесплатная версия под названием Oracle XE.

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

Насколько мне известно, SQL Express бесплатен. В нем могут отсутствовать некоторые функции стандартного SQL Server, но он позволяет вам распространять его вместе с вашим продуктом, и ваши клиенты могут продвигаться вверх, если / когда это необходимо.

Эта ссылка на Википедию должна помочь, она сравнивает большинство больших реляционных баз данных. http://en.wikipedia.org/wiki/Comparison_of_relational_database_management_systems Mysql должен работать нормально, если вы правильно пишете код, это то, на чем работает википедия, поэтому должны поддерживать почти все приложения, если они настроены правильно и работают на достаточно хороших настройках оборудования / кластеризации.

Википедия (imho, один из лучших когда-либо разработанных веб-миров) работает на MySQL, так что не может быть все так плохо. Мне доставляет удовольствие писать код на любой платформе БД, которая соответствует потребностям проекта, и, хотя в MSSQL есть несколько забавных функций, от которых я действительно получаю много пользы, MySQL - это то, на чем работают все мои пакеты с открытым исходным кодом, и Не могу сказать, что у меня вообще есть какие-либо претензии к этой настройке. Если у вас есть выбор между PostgreSQL и MySQL, я советую пойти по пути PostgreSQL, потому что, если вы углубитесь в разработку хранимых процедур и функций, PostgreSQL предоставит вам гораздо более надежный набор функций для работы.

Если вас беспокоят только затраты на лицензирование, существует довольно способная бесплатная версия SQL Server. Есть ограничение на размер, но если вы перерастете это, вы, вероятно, также получаете достаточно дохода, чтобы позволить себе платную версию.

Все зависит от того, что вы ищете в базе данных. Насколько велики ваши наборы данных на самом деле? Какая нагрузка вам понадобится? Вам понадобится кластеризация и / или разбиение на разделы? Собираетесь ли вы иметь штатного администратора баз данных? Вам понадобятся какие-либо расширения помимо того, что вы получаете от ванильного SQL?

Является ли приложение настоящим «зеленым полем» или оно будет внедрено в среду, в которой уже есть существующая инфраструктура / персонал для поддержки существующей БД?

MySQL достиг точки, когда он может обрабатывать почти все, что вы хотели бы противопоставить ему, но «бесплатно» и «может выполнять работу» сами по себе недостаточны для принятия решения.

Я согласен с Ceejayoz, mysql - зрелая СУБД. Никаких излишеств, никаких ограничений, молниеносная скорость, отказоустойчивость и надежность при необходимости. Определенно он заслуживает большего, чем шанс.

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

Планируете ли вы выпустить проект под лицензией, совместимой с GPL? Это требование часто игнорируется.

Редактировать:
Меня критиковали за пунктуализацию, я должен был лучше объяснить свою позицию

Ссылка на GPL относительно связывания закрытого исходного кода с GPL one
http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html#MereAggregation

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

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

Я уже был укушен, когда библиотеки интерфейса mysql перешли с LGPL на GPL в версии 3.80. Мы, наш юридический отдел, обсуждали с MysqlAB, если я правильно помню название фирмы до приобретения Sun, по этому поводу и варианты, которые они нам предоставили, заключались в том, чтобы приобрести коммерческую лицензию без GPL или остаться с версией 3.80 библиотеки.

Кстати, коннектор .net является GPL, это четко указано на странице загрузки
http://dev.mysql.com/downloads/connector/net/5.2.html
и я не думаю, что вы, как и все остальные, в том числе, можете найти полезным общение с сервером через необработанное TCP-соединение с доступным коннектором.

Два других слова о mysql% php: лицензия php и лицензия mysql несовместимы друг с другом Sun и MysqlAB раньше должны были вставить исключение из лицензии, адаптированный для php и других проектов с открытым исходным кодом, чтобы позволить php поддерживать mysql. Это была долгая и страстная диатриба, и я был разочарован результатом: у нас появился явный шанс выпустить php под GPL.

Если он не изменяет код MySQL или не связывает его с ним, не имеет значения, какую лицензию использует MySQL. Соединение через TCP / IP является достаточным развязкой, чтобы рассматривать ваше приложение отдельно и, следовательно, не связанное GPL (хотя не уверен в библиотеке, которую вам нужно использовать для взаимодействия с MySQL)

rmeador 30.12.2008 02:17

Не обязательно быть совместимым с GPL. Это запретило бы PHP использовать его, поскольку лицензия PHP не совместима с GPL.

ceejayoz 30.12.2008 02:26

Привет, meador, Коннектор .net также является GPL, и в FAQ GPL ясно сказано, что ссылка на использование программы GPL через каналы или сокеты. Чтобы обойти это, вы должны предоставить совместимость как минимум с двумя dbms, более подробную информацию и ссылку в редактировании сообщения.

Eineki 30.12.2008 04:08

PHP совместим с MYSQL только за исключением лицензии. Вы можете найти дополнительную информацию и ссылку на текст исключения в сообщении, которое я только что отредактировал.

Eineki 30.12.2008 04:12

+1. Я не понимаю, почему это было отклонено. Это жизненно важный момент, если вам нужно распространить свое приложение среди других.

MarkJ 30.10.2009 18:23

Немного оффтопический ответ (для интереса, проявленного к mysql и википедии):

Вот ссылка на схемы расположения серверов в Википедии за время.

http://meta.wikimedia.org/wiki/Server_layout_diagrams

Взято из:

http://en.wikipedia.org/wiki/Wikipedia#Software_and_hardware

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

Или вы можете купить MySQL, но тогда преимущество перед MSSQL / Oracle уходит.

Или вы можете использовать клиентские библиотеки 3p, которые напрямую подключаются к MySQL без библиотек GPL.

В общем, принять нелегкое решение. Подумать дважды.

Замечание относительно MySQL и GPL: я считаю, что если вы не распространяете двоичный файл своего приложения (т. Е. Ваш продукт является веб-приложением, которое размещается только вами и не развертывается для ваших клиентов), то вы можете использовать лицензию GPL, не требуя от вашего приложения также быть с открытым исходным кодом.

По мере того, как вы разрабатываете в .Net, вы можете найти MS SQL Server полезным.

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

Это также бесплатно в Экспресс-выпуске с расширенными службами.

Эта версия включает службы отчетности, что очень хорошо.

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

Я использовал MySQL и Postgres более пяти лет, и оба они хороши. Однако обратите внимание, что MySQL против Postgres - это одна из священных войн, таких как Linux против Windows и т. д.

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

Postgres более «похож на Oracle» по синтаксису и некоторым функциям. Действительно, его иногда называют «Oracle для бедняков». MySQL Я не уверен, с чем сравнивать.

Из этих двух Postgres долгое время считался более надежным, а MySQL - более быстрым, однако оба преимущества к настоящему времени в некоторой степени спорны.

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

Может быть ряд функций, которые один из них упускает / реализует по сравнению друг с другом, а также с коммерческими базами данных. Если вы укажете свои конкретные потребности (кластеризация, триггеры, последовательности, соответствие ACID, хорошая масштабируемость?), Это может повлиять на то, с какой базой данных вам будет лучше.

Ответ принят как подходящий

MySQL не так дешев, как вы думаете.

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

Я понимаю, что MySQL можно оптимизировать и заставить работать нормально, но я не dba и не могу позволить себе использовать dba для всех моих проектов. У меня есть несколько очень сложных запросов, которые иногда приводят к нехватке памяти в системе. В настоящее время я занимаюсь переносом своих систем на SQL Server Express. Тестовые запросы в SQL Server Express выполняются значительно быстрее, чем в MySQL. Если вы не очень разбираетесь в базах данных и вам нужна надежная и быстрая система, я бы не стал использовать MySQL. SQL Server Express больше предназначен для разработчиков со средним уровнем знаний в области баз данных. Они автоматизировали и настроили производительность многих вещей, которые вам пришлось бы делать в MySQL вручную.

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

Итог - MySQL раньше был хорошим вариантом, но рассматривайте SQL Server Express и PostgresSQL как лучшие текущие альтернативы.

Обновлено:

вот несколько ссылок. Было еще 2 очень резких, но я убрал их с Reddit.

монти-говорит

это был хороший ход

уничтожение mysql

ударить по зубам

критика

случайное сообщение на форуме

что происходит

Никакая база данных не будет дешевой для огромного сайта.

ceejayoz 30.12.2008 15:43
Недавно инсайдеры MySQL опубликовали несколько статей о низком качестве их продукта. - Есть ли у вас какие-нибудь упоминания об этом, мне это очень интересно?
Eineki 31.12.2008 14:17

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

mson 31.12.2008 17:51

Определение качества в приведенном выше сообщении неясно. Я согласен с ceejayoz, БД дороги, не имеет значения, Oracle, MySQL или MSSQL. И если MSON использует MSSQL Express, это означает, что его данные ниже 4 ГБ, любая БД будет работать с этим объемом данных, если дизайн не очень плохой. Сообщение субъективное

Geo 05.01.2009 18:58

Я перенес крупную разработку с Ms SQL на PostGreSQL (по причинам, аналогичным вашим), и был приятно удивлен.

Я обнаружил, что есть несколько предостережений:

  • Ожидайте некоторого изучения хранимой процедуры («функции» в PostGreSQL). Если вы знакомы с Oracle plsql, это может не иметь большого значения.
  • Коннектор npgsql .Net имеет некоторые проблемы со стабильностью (особенно с .Net 2.0). Однако сообщество разработчиков v. Активно и быстро реагирует на запросы и проблемы. (Доступны более стабильные коммерческие разъемы)

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

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

Другие вопросы по теме