Portál AbcLinuxu, 14. května 2025 06:13

Dotaz: Zatez databaze tak nebo tak

1.8.2008 13:29 Lokiji
Zatez databaze tak nebo tak
Přečteno: 875×
Odpovědět | Admin
Dobry den, chtel bych se zeptat nekoho kdo s tim ma zkusenosti, na necem ted pracuju a jsou zde 2 moznosti provedeni: 1.) mit mnoho malych databazi, mezi kterymi se budu prepinat mene casto, nebo 2.) mit jednu velkou ktera bude vyuzita castejc. co je z hlediska zateze serveru lepsi? mit data rozhazene ve vice databazich a prepinat se nebo je mit v jedne velke databazi a vysledky filtrovat? dekuji za odpoved Lokiji
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

1.8.2008 13:34 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Zatez databaze tak nebo tak
Odpovědět | | Sbalit | Link | Blokovat | Admin
Na vašem místě bych se zabýval spíš tím, jestli engine, který chcete používat, umí efektivně pracovat s dotazy nad více databázemi a také s transakcemi nad více databázemi. Pokud ne, snažil bych se pokud možno vyhnout tomu, abyste musel současně pracovat s více databázemi.
1.8.2008 13:47 Lokiji
Rozbalit Rozbalit vše Re: Zatez databaze tak nebo tak
Odpovědět | | Sbalit | Link | Blokovat | Admin
jeste pro upresneni, bude to mysql a php+zend framework, pokud to pomuze, server bude apache
Heron avatar 1.8.2008 14:14 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Zatez databaze tak nebo tak
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nelámal bych si s tím hlavu a udělal to tak, jak je to jednodušší. Tedy jedna DB. Protože overhead PHP pro přepínání DB bude vyšší než teoretická úspora (= reálně 0%) pro MySQL.
Heron
default avatar 1.8.2008 15:48 default | skóre: 22 | Madrid
Rozbalit Rozbalit vše Re: Zatez databaze tak nebo tak
Odpovědět | | Sbalit | Link | Blokovat | Admin
nebo je mit v jedne velke databazi a vysledky filtrovat?
Tady asi nebude něco v pořádku, že? Být vámi použiju jen jednu databázi a předělám datový model tak, aby se nemuselo nic filtrovat. Je to totiž naprosto zbytečné. Jestliže s datovým modelem nemůžete "hýbat", pak použijte oddělené databáze (schémata).
1.8.2008 16:23 Lokiji
Rozbalit Rozbalit vše Re: Zatez databaze tak nebo tak
spatne sem se vyjadril:-)omezit select jenom na to co chci, napr, vsechny co maji pole x="5", tak sem to myslel
1.8.2008 16:39 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Zatez databaze tak nebo tak
Tak teď už tomu vůbec nerozumím… Vy jste chtěl rozdělovat do různých databází data, která ve skutečnosti logicky patří do jedné tabulky? Proč?
1.8.2008 16:45 Lokiji
Rozbalit Rozbalit vše Re: Zatez databaze tak nebo tak
ano, protoze predpokladam ze z 80% bude vyuzita jenom ta cast treba x="5", ze bych prochazel pak jenom primo urcene tabulky v primo urcenych databazi nez omezit select, nevim co je vic narocnejsi pro server.
1.8.2008 17:00 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Zatez databaze tak nebo tak
Dvacet procent mi připadá jako více než dostatečný důvod pro to, aby byla všechna data pohromadě.
1.8.2008 17:17 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: Zatez databaze tak nebo tak
Pro těch pět přístupů za (minutu/hodinu/den, zvolte dle uvážení) je to stejně jedno. Konečně databáze je od toho, aby si sama poradila nad modelem dat (relačním modelem, proto taky relační databáze). Místo jiné databáze by bylo lepší uvažovat leda tak jen o pohledu (view) nad daty z jedné tabulky, to snad zvládne i MySQL.
default avatar 1.8.2008 17:44 default | skóre: 22 | Madrid
Rozbalit Rozbalit vše Re: Zatez databaze tak nebo tak
V případě, že z 80% budete pokládat jen jeden konkrétní dotaz (co se SELECT klauzule týče), ponechte data v jedné tabulce a založte kompozitní index, který bude pokrývat sloupec X (a další z WHERE klauzule) a pak všechny ze SELECT klauzule (včetně DETERMINISTIC funkcí).

Budete ta data v té tabulce měnit často? Pakliže ne, a budete-li potřebovat maximální výkon (např. kompozitní index nebude schopen pokrýt všechny případy), zauvažoval bych nad materializovanými pohledy (opět s indexy). Budou-li se měnit často, musíte vyladit indexy.

Na zvážení je i možnost rovnou data rozdělit do více tabulek. Tím se Vám věci ohledně indexů docela zjednodušší, ale rozhodně bych data nerozděloval do více databází…
11.8.2008 12:31 albert
Rozbalit Rozbalit vše Re: Zatez databaze tak nebo tak
Na toto je urceny partitioning, nevim ale zda je k dispozici v MySQL a myslim ze spis ne. Tzn. pripada v uvahu "rucni" partitiong, spocivajici v rozdeleni na vice tabulek a jejich sdruzeni formou view. Samozrejme funkcnosti partitioningu realizovaneho databazi to nedosahne (napr. nelze mit nepartisnovany index, tzn. nelze udelat PK nebo UK pres vsechna data).

Rozdelovani do samostatnych databazi podle mne zcela postrada smysl. Neznam MySQL, ale nedovedu si predstavit, ze by dve tabulky kazda v jine databazi mohli byt vykonnejsi nez obe v jedne databazi, pokud je to fyzicky na stejnem stroji.

A na zaver ze zkusenosti - cistota modelu je dlouhodobe dulezitejsi nez vykon. Nelogicke rozdeleni dat, rozsahle denormalizace apod. ma smysl zvazovat pouze v pripade, ze je neco identifikovano jako kriticky zpomalujici misto v ramci cele aplikace. Jinak bude cenou za zbytecny parprocentni narust vykonu slozita implementace a udrzba, vedouci k chybam a provoznim problemum.
1.8.2008 16:22 R
Rozbalit Rozbalit vše Re: Zatez databaze tak nebo tak
Odpovědět | | Sbalit | Link | Blokovat | Admin
1 aplikacia = 1 databaza

Pokial nie je naozaj dobry dovod pouzivat databaz viac.
4.8.2008 10:44 neaktivni | skóre: 24 | blog: neaktivni
Rozbalit Rozbalit vše Re: Zatez databaze tak nebo tak
Tak toto je myslenka dne, nebo jsem to vubec nepochopil...
4.8.2008 16:36 azurIt | skóre: 34 | blog: zatial_bez_mena
Rozbalit Rozbalit vše Re: Zatez databaze tak nebo tak
takze si to zrejme nepochopil ;) je to presne ako pise.
pavlix avatar 18.8.2008 15:29 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Zatez databaze tak nebo tak
Je to pitomost, zakazovat obecně aplikacím přistupovat k několika databázím.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
18.8.2008 22:16 azurIt | skóre: 34 | blog: zatial_bez_mena
Rozbalit Rozbalit vše Re: Zatez databaze tak nebo tak
nikde sa nic nezakazuje avsak vseobecne plati, ze co aplikacia to databaza. nevidim ziadny rozumny dovod na to, aby boli data jednej aplikacie rozhadzane po niekolkych roznych databazach.
pavlix avatar 18.8.2008 15:31 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Zatez databaze tak nebo tak
Odpovědět | | Sbalit | Link | Blokovat | Admin
Doporučuju si v první řadě zopakovat pojmy jako databáze a tabulka :). Pak si rozmyslet, co se s datama bude dělat (všechny operace, co budou potřeba) a podle toho se rozhodnout. Když člověk moc tápe, tak není špatné se podívat na trochu teorie a "normální formy" a tak, wikipedie je dobrý zdroj.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.