Я очень рад новым функциям Mysql XMl .
Теперь я наконец-то могу встраивать что-то вроде "объектно-ориентированных" документов в мою реляционную базу данных oldschool.
В качестве примера использования рассмотрим пользователя, который поет на вашем сайте, используя Facebook connect.Вы можете получить объект для пользователя, используя график API, и получить полезную информацию.Эта информация, однако, может сильно различаться.Некоторые поля могут быть или не быть установлены, некоторые могут быть добавлены с течением времени и т. Д.
Что ж, если вы просто интересуетесь очень специальными полями (например, отношения с друзьями, пол, фильмы ...), выможет проецировать их в вашу схему реляционной базы данных.
Однако, используя функции XMl, вы можете сохранить весь объект внутри поля, и тогда ваши разные модели смогут получить доступ к данным с помощью функции ExtractValue .Вы можете хранить все сразу, не беспокоясь о том, что вам понадобится позже.
Но какова будет производительность?
Например, у меня есть таблица с 50 000 записей, которые представляют пользователей.У меня есть поле enum, в котором указано "male", "female
"(или различные другие полы должны быть политкорректными).
Производительность, например, выборки всех мужчин будет очень быстрой.
Но как насчет чего-то вроде WHERE ExtractValue(userdata, '/gender/') = 'male'
?
Как изменится производительность, если объект станет больше?
Могу ли я поболтать?каким-то образом поместить индекс в выбранный выбор xpath?
Как типы полей работают вместе с этой функцией / производительностью. Varchar / blob?
DoМне нужны полнотекстовые индексы?
Подводя итог моему вопросу:
Функции Mysql XML выглядят великолепно. И я уверен, что они действительно хороши, если вы просто хотите хранить структурированныеданные, которые вы извлекаете и анализируете в своем приложении.
Но как они будут противостоять процедурам, в которых выполняются внутренние проверки / сортировка / сравнение / вычисления?
Может ли Mysql заменить документ?ориентированные базы данных, такие как CouchDB /Сезам?
Каковы преимущества и недостатки функций XML?
Как и почему они лучше / хуже динамического приложения, которое хранит различные данные в качестве атрибутов?
Например, таблица ключ / значение с xpath в качестве ключа и значением в качестве значения, связанного с сущностью документа.
Кто-нибудь сталкивался с этим другим или заметил что-то упомянутое?