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

Где различия с использованием базы данных XML и MySQL? Что я должен использовать?

Ну, я знаю, что это немного глупо. Если я хочу хранить большой объем данных. Должен ли я использовать xml или базу данных (mysql)?

Почему вы выбираете (тот) один?

Каковы плюсы и минусы с помощью xml?

Какие плюсы и минусы используют mysql?

Clubpenguin, гостиница habbo, эти виртуальные миры используют xml или mysql??

4b9b3361

Ответ 1

MySQL (или SQL Server, Oracle, DB2 и т.д.) - это движки базы данных: это конкретные приложения, которые были созданы для хранения и обработки данных, и очень хороши в этом; они также могут работать на другом сервере, чем тот, где находится ваша основная программа, что позволяет распределять нагрузку.

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

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

Кроме того, обязательный справочник Joel Spolsky.

Ответ 2

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

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

Ответ 3

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

Еще одна возможность, которую вы можете попробовать, - использовать XML-базу данных, например Xindice (http://xml.apache.org/xindice/). В настоящее время базы данных XML не так много используются, главным образом потому, что у нас нет хороших математических теорий о иерархических базах данных. Но они могут быть действительно полезными, если у вас есть правильная проблема...

Ответ 4

Это больше похоже на /fooobar.com/... вопрос, а не на вопрос ServerFault. В любом случае..

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

Если вам не нужно хранить данные с реляционными свойствами, вы можете попробовать хранилище ключей/значений или документально-ориентированную базу данных вместо RDBMS для лучшей производительности/масштабируемости в обмен на меньшее количество функций.

Ответ 5

Ну, я знаю, что это немного глупо. Если я хочу хранить большой объем данных. Должен ли я использовать xml или базу данных (mysql)?

Прежде всего, XML является иерархическим по своей природе, а MySQL является реляционным.

Если вы сохраните свои данные как XML document:

<customer>
 <address/>
 <address/>
</customer>

очень легко получить все адреса клиента, но не так просто получить клиентов по определенному адресу.

Во-вторых, XML более ориентирован на пользователей. Вы можете легко редактировать его с помощью любимого текстового редактора. В MySQL это не так просто.

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

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

Ответ 7

Большинство крупных сайтов используют базу данных, такую ​​как MySQL.

Самый важный вопрос, на который вам нужно ответить, - это то, как вы хотите получить доступ к своим данным. Если вы хотите, чтобы много людей искали вещи много раз в секунду (например, популярный сайт), используйте базу данных, такую ​​как mysql.

Ответ 8

Я бы поверил, что они используют полнофункциональную СУБД в качестве хранилища резервных копий и только генерируют/анализируют XML в качестве интерфейса.

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

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

Преимущества РСУБД благодаря наличию гораздо более эффективного хранилища упакованных данных с предсказуемым поиском/поиском через записи и несколькими хранилищами данных и несколькими указателями.

Ответ 9

XML не является базой данных, это формат файла (или, точнее, формат ввода или вывода). Он позволяет вам определить свой собственный формат с использованием синтаксических элементов XML, а затем вы можете, например, преобразовать объект памяти в поток XML и сохранить его на диск.

mySQL - это программный продукт, принадлежащий к классу продуктов под названием СУБД (система управления базами данных). СУБД управляют вашими данными и предоставляют различные возможности хранения, поиска, индексирования, запросов и транзакций.

Что вам нужно решить, нужен ли вам формат файла или система управления. В зависимости от этого ваш выбор может быть XML (или другим форматом, например JSON или текстовым файлом) или mySQL (или другой реляционной СУБД, например MS SQL Server или Oracle, или может быть даже нереляционной СУБД).