Mysql
 sql >> Base de données >  >> RDS >> Mysql

Performances des fonctions MySql Xml ?

J'ai tendance à faire des commentaires similaires à ceux de Pekka, mais je pense que la raison pour laquelle nous ne pouvons pas en rire est votre déclaration "Cette information peut cependant varier considérablement." Cela signifie qu'il n'est pas réaliste de prévoir de tout analyser et de le projeter dans la base de données.

Je ne peux pas répondre à toutes vos questions, mais je peux répondre à certaines d'entre elles.

Plus particulièrement, je ne peux pas vous parler des performances sur MySQL. Je l'ai vu dans SQL Server, je l'ai testé et j'ai découvert que SQL Server effectuait des extractions XML en mémoire très lentement, il m'a semblé qu'il lisait à partir du disque, mais c'est un peu exagéré. D'autres peuvent le contester, mais c'est ce que j'ai trouvé.

"Mysql peut-il remplacer les bases de données orientées document comme CouchDB/Sesame ?" Cette question est un peu trop large, mais dans votre cas, l'utilisation de MySQL vous permet de conserver la conformité ACID pour ces morceaux XML, en supposant que vous utilisez InnoDB, ce qui ne peut pas être dit automatiquement pour certaines de ces bases de données orientées document.

"Comment et pourquoi sont-ils meilleurs/pires qu'une application dynamique qui stocke diverses données sous forme d'attributs ?" Je pense que c'est vraiment une question de style. Vous recevez des morceaux XML qui sont (vraisemblablement) documentés et MySQL peut les parcourir. Si vous les gardez tels quels, vous économisez une étape. Que gagnerait-on à les convertir en autre chose ?

La documentation MySQL suggère que le fichier XML ira dans un champ clob. Les performances peuvent souffrir sur des documents plus volumineux. Peut-être identifierez-vous alors les sous-documents que vous souhaitez répartir régulièrement et mettre dans une table enfant.

Dans le même ordre d'idées, s'il y a des sous-docs particuliers que vous souhaitez connaître, vous pouvez créer une table enfant, "HasDocs", faire un peu de prétraitement et la remplir avec des noms de sous-docs avec leur compte. Cela accélérerait l'analyse statistique et accélérerait également la recherche de documents contenant certains sous-documents.

J'aimerais pouvoir en dire plus, j'espère que cela vous aidera.