Estoy muy entusiasmado con el nuevo Mysql XMl Functions.¿Desempeño de las funciones de MySql Xml?
Ahora, finalmente, puedo incorporar algo así como documentos "orientados a objetos" en mi base de datos relacional de la vieja escuela.
Para un caso de uso de ejemplo, considere a un usuario que canta en su sitio web usando facebook connect. Puede buscar un objeto para el usuario usando la API gráfica y obtener buena información. Sin embargo, esta información puede variar enormemente. Algunos campos pueden o no estar configurados, algunos pueden agregarse a lo largo del tiempo y así sucesivamente.
Bueno, si estás interesado en campos muy especiales (por ejemplo, relaciones de amigos, género, películas ...), puedes proyectarlos en tu esquema de base de datos relacional.
Sin embargo, al usar las funciones XMl puede almacenar todo el objeto dentro de un campo y luego sus diferentes modelos pueden acceder a los datos usando la función ExtractValue. Puede almacenar todo de inmediato sin necesidad de preocuparse de lo que necesitará más adelante.
¿Pero cuál será el rendimiento?
Por ejemplo, tengo una tabla con 50 000 entradas que representan useres. que tienen un campo de enumeración que indica "male", "female
"(o varios otros géneros para ser políticamente correcto).
El rendimiento de, por ejemplo, ir a buscar todos los varones será muy rápido.
Pero ¿qué pasa con algo así como
WHERE ExtractValue(userdata, '/gender/') = 'male'
?Cómo variará el rendimiento si el objeto se hace más grande?
¿Puedo maby alguna manera poner un índice en específi selecciones ed xpath?
¿Cómo funcionan los tipos de campo junto con estas funciones/rendimiento. Varchar/blob?
¿Necesito índices de texto completo?
En resumen mi pregunta:
functins Mysql XML ven muy bien. Y estoy seguro de que son geniales si solo quiere almacenar datos estructurados que busque y analice en su aplicación.
Pero, ¿cómo se enfrentarán en los procedimientos donde se realizan escaneos internos/clasificación/comparación/cálculos realizados en ellos?
¿Puede Mysql reemplazar bases de datos orientadas a documentos como CouchDB/Sesame?
¿Cuáles son las ventajas y desventajas de las funciones XML?
¿Cómo y por qué son mejores/peores que una aplicación dinámica que almacena varios datos como atributos?
Por ejemplo, una tabla de clave/valor con un xpath como clave y el valor como valor conectado a la entidad del documento.
¿Alguien hizo alguna otra experiencia con él o ha notado algo que se puede mencionar?
Todavía estoy totalmente alucinado que estos existen en primer lugar. Cuando vi tu enlace, pensé que era una vieja broma de los inocentes :) –
hecho reconfortante de que ni siquiera todos lo sabían;) –
En realidad no soy tan bueno en mySQL más allá de lo que un desarrollador web necesita todos los días. Todavía estoy perplejo sobre cómo * I * llegó a ser el usuario # 6 en la etiqueta :) –