Я знаю, что этот вопрос задан довольно много раз, но у меня нет удовлетворительного ответа.Почему реляционная база данных не может масштабироваться горизонтально
Я прочитал много блогов, и большинство из них говорит, что СУРБД нельзя масштабировать по горизонтали. Единственный способ справиться с этим - покупка больших машин.
Затем я читаю, почему их нельзя масштабировать горизонтально. Люди говорят, потому что они обеспечивают надежные, зрелые услуги в соответствии с свойствами ACID. Мой аргумент заключается в том, что мы не можем отказаться от RDBMS для предоставления свойств ACID для определенных таблиц. Это единственная причина, по которой ее нельзя масштабировать горизонтально, и мы должны рассматривать базы данных NoSQL.
Второй аргумент, который заключается в том, что базы данных NoSQL хранят данные как единое целое, тогда как RDBMS хранит данные по нескольким таблицам. Таким образом, одна часть данных может находиться в одной системе, а другая часть данных, которую она ссылается, может быть в другой системе. Следовательно, масштабирование РСУБД распределено затруднительно. Мой вопрос к ним заключается в том, почему мы не можем хранить все связанные данные в одной таблице, а рассеивать их по нескольким таблицам, если этого требует ситуация. Если NoSQL может хранить данные как единое целое в одной коллекции, почему RDBMS не может хранить данные как единое целое в одной таблице. (Например, почему заказ должен быть разбит на таблицу заказов, таблицу клиентов и таблицу платежей. Почему они не могут быть сгруппированы в одну таблицу, как мог бы хранить NoSQL)
Это также позволяет разработчикам развиваться без необходимости преобразования структур памяти в реляционные структуры.
Вкратце, можем ли мы заставить РСУБД вести себя как база данных NoSQL и сделать ее масштабируемой по горизонтали?
Yup stick все в blob - удачи, получив его снова. –
Teradata - это коммерческая распределенная РСУБД, работающая с начала 80-х годов. Если он существует, возможно, это возможно. –
Трудно ответить, не повторяя блоги, которые вы читаете. ACID заставляет вас проверять многое (вы должны попытаться сделать несколько примеров, это может сделать это яснее!) И rdbms сильно зависят от него, что усложняет работу, если данные неструктурированы и распространены повсюду (но не невозможно, кластеры и, например, json существуют). Если вы удалите (некоторые из) эти проверки, вы можете, например, хранить все, где вы хотите, даже иметь автономные узлы. Если результаты Google или списки facebook бывают быстрыми, но не на 100% точными, вы можете жить с ним. Если ваш банк будет думать так же, вы можете жаловаться. – Solarflare