Attualmente sto lavorando con un database un po 'più grande, e anche se non ho problemi specifici, vorrei alcune raccomandazioni, se qualcuno ne ha.Consigli di prestazione H2
Il database è 2,2 gigabyte (dopo la ricreazione/compattazione). Contiene circa 50 tavoli. Una di queste tabelle contiene un blob più alcuni metadati. Attualmente ha circa 22000 file. Se rimuovo i BLOB dalla tabella (tabella UPDATE SET blob = null), la dimensione del database viene ridotta a circa 200 megabyte (dopo la ricreazione/compattazione). Si accede ai metadati molto, ma i BLOB non sono spesso necessari.
L'URL del database attualmente utilizzo è:
jdbc:h2:D:/data;AUTO_SERVER=true;MVCC=true;CACHE_SIZE=524288
Si corre nel nostro Java VM che ha 4GB massimo mucchio.
Alcune cose mi chiedevo:
- Sarebbe esecuzione H2 in un processo separato avere alcun impatto sulle prestazioni (in meglio o in peggio)?
- Potrebbe essere utile avere i BLOB in una tabella separata con una relazione 1-1 con i metadati? Potrei immaginare che sarebbe d'aiuto con il caching, non avendo il blob nel modo in cui?
- Internet sembra diviso sull'opportunità di includere i BLOB in un database o scriverli su file su un filesystem con un collegamento nel DB. Qualche consiglio specifico per H2 qui?