V čem mít uložená slovníková data   otázka

C#, Optimalizace, Databáze, .NET

Mám data pro česko-anglický slovník a řeším, jaké je jejich nejefektivnější uložení. Jedná se

zhruba o 250 000 řádku -> cca 7MB dat.

1) V .txt souboru - podle mě zbytečné, jsou lepší způsoby

2) V .xml souboru - lepší jak .txt už kvůli usnadněné práci, ale nejsem si jistý rychlostí

3) Databáze - ať už access, nebo sql compact, ale nevím, jestli to není pro tento účel trochu overkill

4) ? nějaký jiný způsob ?

S daty bych rád pracoval co nejrychleji, mám je celá v tomto množství načítat například do nějakého dictionary, nebo k nim přistupovat až při potřebě? Při použití databáze by problém s výkonem asi nebyl, ale představa cyklického vyhledávání v xml o 250 000 řádcích by už byla znát.

Díky

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Microsoft SQL Server Compact Edition

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Jestli to má 7 MB dat, tak bych je načetl do paměti rovnou.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Záleží na tom, jakou strukturu budou data mít. Pokud to bude jen český a anglický výraz ve formátu CSV, potom to bude nejspíš nejrychlejší řešení. Běžné slovníky (např. Magnus) mají databázi s mnoha tabulkami a relacemi.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Určitě do databáze, a co se týče hledání, záleží, co přesně je potřeba - pokud by šlo jen o přesnou shodu je ve slovníku / není ve slovníku, pak bych to načetl do paměti do HashSetu, 7MB není zas tak moc.

Pokud by byl slovník větší a nebylo by vhodné držet ho v paměti, bylo by potřeba ho do souboru uložit v nějaké stromové struktuře, nebo jako hashtabulku, aby se v něm dalo rychle hledat.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback