sql >> Base de Datos >  >> RDS >> Mysql

¿Rendimiento de las funciones MySql Xml?

Tiendo a hacer comentarios similares a los de Pekka, pero creo que la razón por la que no podemos reírnos de esto es su declaración "Sin embargo, esta información puede variar enormemente". Eso significa que no es realista planear analizarlo todo y proyectarlo en la base de datos.

No puedo responder a todas sus preguntas, pero puedo responder algunas de ellas.

En particular, no puedo informarle sobre el rendimiento en MySQL. Lo he visto en SQL Server, lo probé y descubrí que SQL Server realiza extracciones XML en memoria muy despacio, a mí me parecía como si estuviera leyendo de disco, pero eso es un poco exagerado. Otros pueden disputar esto, pero eso es lo que encontré.

"¿Puede Mysql reemplazar bases de datos orientadas a documentos como CouchDB/Sesame?" Esta pregunta es un poco demasiado amplia, pero en su caso, usar MySQL le permite mantener el cumplimiento de ACID para estos fragmentos XML, suponiendo que esté usando InnoDB, lo que no se puede decir automáticamente para algunas de esas bases de datos orientadas a documentos.

"¿Cómo y por qué son mejores/peores que una aplicación dinámica que almacena varios datos como atributos?" Creo que esto es realmente una cuestión de estilo. Se le proporcionan fragmentos XML que (presuntamente) están documentados y MySQL puede navegar por ellos. Si los mantienes como tales, te ahorras un paso. ¿Qué se ganaría al convertirlos en otra cosa?

Los documentos de MySQL sugieren que el archivo XML entrará en un campo clob. El rendimiento puede verse afectado en documentos más grandes. Tal vez entonces identificará los subdocumentos que desea dividir regularmente y colocar en una tabla secundaria.

De la misma manera, si hay subdocumentos particulares que desea conocer, puede crear una tabla secundaria, "HasDocs", hacer un poco de preprocesamiento y completarla con nombres de subdocumentos con sus cuenta Esto haría que el análisis estadístico fuera más rápido y también aceleraría la búsqueda de documentos que tienen ciertos subdocumentos.

Ojalá pudiera decir más, espero que esto ayude.