Производительность функций MySql Xml?

Я очень взволнован новыми функциями Mysql XMl .

Теперь я наконец могу встроить что-то вроде «объектно-ориентированных» документов в мою старую школу реляционная база данных.

В качестве примера рассмотрим пользователя, который регистрируется на вашем веб-сайте с помощью подключения к facebook. Вы можете получить объект для пользователя с помощью api графика и получить полезную информацию. Однако эта информация может сильно различаться. Некоторые поля могут быть или не быть заданы, некоторые могут быть добавлены со временем и т. Д.

Что ж, если вас просто вставили в очень специальные поля (например, отношения с друзьями, пол, фильмы ...), вы можете проецировать их в вашу схему реляционной базы данных.

Однако, используя функции XMl, вы можете сохранить весь объект внутри поля, а затем ваши различные модели могут получить доступ к данным с помощью функции ExtractValue . Вы можете сохранить все сразу, не беспокоясь о том, что вам понадобится позже.

Но какова будет производительность?

Например, у меня есть таблица с 50 000 записей, которые представляют пользователей. У меня есть поле перечисления, в котором указано «мужской», «женский » (или другие гендеры, чтобы быть политкорректным).

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

  • Но как насчет чего-то вроде WHERE ExtractValue (userdata, '/ gender /') = 'male' ?

  • Как изменится производительность, если объект станет больше?

  • Могу я как-нибудь поставить метку Индексировать указанный выбор xpath?

  • Как типы полей работают вместе с этой функцией / производительностью. Varchar / blob?

  • Нужны ли мне полнотекстовые индексы?

Подводя итог моему вопросу:

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

Но как они будут сражаться в процедурах, в которых выполняется внутреннее сканирование / сортировка / сравнение / вычисления?

Может ли Mysql заменить документно-ориентированные базы данных, такие как CouchDB / Sesame?

Каковы преимущества и недостатки функций XML?

Чем и почему они лучше / хуже, чем динамическое приложение, которое хранит различные данные в виде атрибутов?

Например, таблица ключ / значение с xpath в качестве ключа и значением в качестве значения, связанного с документом сущность.

Кто-нибудь испытал это или заметил что-то достойное упоминания?

8
задан The Surrican 13 January 2011 в 18:27
поделиться