sql >> Databáze >  >> RDS >> Mysql

Výkon funkcí MySql Xml?

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.




  1. Záznamy založené na kurzoru v PostgreSQL

  2. Proč se pg_restore úspěšně vrací, ale ve skutečnosti neobnovuje moji databázi?

  3. PHP MYSQL -> Zobrazit data uložená jako typ 'datum' z databáze MYSQL

  4. Typ dat tabulky Změnit