Autor Zpráva
Anna007
Profil
Mám 12 tabulek (na každý měsíc jednu), všechny mají stejný počet sloupců i jejich názvy, ale v každé je v průměru 800 řádků. Jedna řádka bude zabírat asi 4000 B včetně indexu. Vůbec se v databázích nevyznám, tak nevím, jestli je to moc nebo málo. Ještě to nemám vůbec zaplněné, teprve to plánuju, a potřebovala bych vědět, jestli by bylo možné z těch 12 tabulek udělat jednu, jestli by nebyla moc velká, když by měla 9600 řádků ? Nějaké velké texty tam nejsou. Mě vychází asi 38 MB, je to moc ?

A druhý dotaz - několik sloupců obsahuje údaje, kterých je jen několik, ale často se opakují, tak jsem to chtěla udělat jako kategorie, jenže mám takový problém, že v některý řádek spadá do více těch kategorií, třeba do dvaceti, tak nevím, jak to vyřešit, nebo to mám nechat na fulltextovém vyhledávání ? Konkrétně se jedná o to, že je to seznam svatých a každý je patronem něčeho a na to jsem právě chtěla udělat ty kategorie, jenže každý ten svatý je patronem víc věcí, tak jak to udělat, nevíte někdo ?

A ještě jeden dotaz : když chci mít na více sloupců index, tak je lepší mít index (resp. fulltext) na každý zvlášť nebo je lepší dát jeden fulltext na všechny ty sloupce dohromady (třeba 5 sloupců) ? To je pro mě španělská vesnice, ty indexy (jako i další věci v těch databázích :)).
Mastodont
Profil
Anna007

To je v pohodě. Kdybys napsala 800 tisíc, tak by to stálo za nějakou analýzu, ale takhle ne.

Pokud potřebuješ zařadit záznam do více kategorií, tak se to dělá přes další tabulku, ve které budeš mít id záznamu z první tabulky a kategorii. V té druhé tabulce pak bude tolik záznamů pro dané id, do kolika kategorií patří.

Indexovat se mají jen sloupce, podle kterých často řadíš nebo ve ktereých vyhledáváš, a pak sloupce tvořící klíče.
Anna007
Profil
Díky moc to s tou další tabulkou tak nějak teoreticky chápu, ale to by bylo strašně komplikovaný, kdybych každý z 9600 záznamů měla třídit v další tabulce do kategorií, to si vůbec neumím představit. Takže to nejde, že by se udělala tabulka, kde by bylo id a ta kategorie (třeba kategorie proti rakovině by mělo id 50, proti moru by mělo id 92 atd.) a pak by se to vypsalo nějak do toho jednoho řádku a jednoho sloupce třeba oddělené čárkou (50,92,..), ale co by to bylo za typ sloupce? Hm, to asi nepůjde, opravdu.
Jinak se mi opravdu ulevilo, že můžu ty tabulky dát dohromady, docela jsem z toho měla těžkou hlavu.
Mastodont
Profil
Ale ano, jde to, spousta lidí to tak dělá, ale nemělo by se to - zpomaluje se vyhledávání, protože je nutné použít WHERE sloupec LIKE %hodnota% a nepoužívá se index. U pár set záznamů ten rozdíl bude samozřejmě malý, ale to by se muselo otestovat.
djlj
Profil
protože je nutné použít WHERE sloupec LIKE %hodnota%
Je možný ještě použít FIND_IN_SET.
Anna007
Profil
Aha, tak to asi nebudu s těmi kategoriemi komplikovat, když tolik nejde o tu velikost tabulky a nechám to vyhledávat podle slov. Ještě jednou díky !!
Mastodont
Profil
djlj
FIND_IN_SET je u sloupců typu SET, ty mi pro kategorie nepřipadají vhodné.
djlj
Profil
Mastodont
Však jasně; já bych to též řešil další pomocnou tabulku, jaks již psal výše.
Anna007
Profil
FIND_IN_SET je u sloupců typu SET, ty mi pro kategorie nepřipadají vhodné.
To právě nemůže být typu SET, protože jestli jsem to dobře pochopila, tak se tam může předdefinovat maximálně 64 prvků, a já jich budu potřebovat minimálně 200. A ještě k tomu nevím ani kde se to má předdefinovat atd.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0