Mám tendenci dělat komentáře podobné Pekkovým, ale myslím, že důvodem, proč se tomu nemůžeme smát, je vaše prohlášení:"Tyto informace se však mohou značně lišit." To znamená, že není reálné plánovat to vše analyzovat a promítnout do databáze.
Nemohu odpovědět na všechny vaše otázky, ale mohu odpovědět na některé z nich.
Především vám nemohu říci o výkonu na MySQL. Viděl jsem to v SQL Server, testoval jsem to a zjistil jsem, že SQL Server provádí extrakce XML v paměti velmi pomalu, zdálo se mi, jako by to četl z disku, ale to je trochu nadsázka. Ostatní to mohou zpochybnit, ale to jsem našel.
"Může Mysql nahradit databáze orientované na dokumenty, jako je CouchDB/Sesame?" Tato otázka je trochu příliš široká, ale ve vašem případě vám používání MySQL umožňuje zachovat soulad s ACID pro tyto části XML, za předpokladu, že používáte InnoDB, což u některých těchto databází orientovaných na dokumenty nelze automaticky říci.
"Jak a proč jsou lepší/horší než dynamická aplikace, která ukládá různá data jako atributy?" Myslím, že je to opravdu otázka stylu. Dostanete kusy XML, které jsou (pravděpodobně) zdokumentovány a MySQL je může procházet. Pokud je ponecháte jako takové, ušetříte krok. Co by se získalo jejich převedením na něco jiného?
Dokumenty MySQL naznačují, že soubor XML půjde do pole clob. U větších dokumentů může dojít ke zhoršení výkonu. Možná pak identifikujete dílčí dokumenty, které chcete pravidelně vylamovat a vkládat do podřízené tabulky.
V souladu s tím, pokud existují konkrétní dílčí dokumenty, o kterých víte, že je budete chtít vědět, můžete vytvořit podřízenou tabulku „HasDocs“, provést malé předběžné zpracování a naplnit ji názvy dílčích dokumentů s jejich se počítá. To by umožnilo rychlejší statistickou analýzu a také rychlejší nalezení dokumentů, které mají určité dílčí dokumenty.
Kéž bych mohl říct více, doufám, že to pomůže.