Autor Zpráva
Slark
Profil *
Dobrý den,

mohl by mi prosím někdo vysvětlit jak fungují partitions a jak je jednoduše aplikovat na DB? Mám menší redakční systém, který jsem aplikoval na pár webů (většinou pro přátelé). Tyto weby běží na mém serveru a všechny používají stejnou DB a stejné tabulky, jelikož pro všechny weby by byli tabulky úplně totožné, zvolil jsem tuto metodu. V každé tabulce je sloupec WEB_ID, který identifikuje web pro který je obsah(řádek) určen. Funguje to docela dobře, ale četl jsem něco o partitions, chápu správně, že se dá pak samotná tabulka rozdělit dle samotných WEB_IDs?

Může mi někdo uvést příklad jak to funguje? Jak partitions aplikovat např. na tabulku:

CREATE TABLE web_content (
`WEB_ID` int,
`content_id` int,
`content` text
)

Nebo může někdo navrhnout jaké řešení by bylo pro mě vhodnějši? Nemyslím si, že samostatná DB pro každý web je lepším řešením.
Mnohokrát děkuji za případné objasnění.
Alphard
Profil
A jaký problém řešíte? Je to pomalé?
Partitions vidím jako řešení výkonnostních problémů, o kterých se ale nezmiňujete. Obecné články jste si už asi našel (např. http://www.slideshare.net/datacharmer/partitions-performance-with-mysql-51-and-55 nebo http://www.w3resource.com/mysql/mysql-partition.php). Konkrétně přes WEB_ID by to určitě rozsekat šlo, ale musel by k tomu být důvod.

Nebo může někdo navrhnout jaké řešení by bylo pro mě vhodnějši?
Opět, je třeba specifikovat, čeho chcete dosádhnout. Současný návrh vypadá rozumně, ke změně je třeba důvod.
Slark
Profil *
Dobrý den,

soustředím se na řešení RS kde očekávám vyšší zátěž, hostovat třeba 500 webů a právě nevím jak by to bylo s výkonem. Teď má 1 web i 6000 záznamů článků v DB + 3 jazykové mutace = další tabulka 18 000 záznamů, články co jste mi zaslal jsem už četl a nepochopil jsem z toho právě to, že tam partitions zadávjí u více sloupců, čemuž nerozumím. Je nutné ještě zmínit, že současné řešení funguje dobře, web se načte prakticky okamžitě, ale jde mi o to jestli se to "takto dělá". Pokud je to přes WEB_ID dobré řešení, nemám s tím žádný problém. Nicméně jsem myslel že právě partitions je to jak se to "má dělat".

Děkuji Vám za informace
Alphard
Profil
Partitions jsou řekl bych spíš implementační nápověda pro SQL server, jak má optimálně zacházet s daty, není to primárně věc návrhu.
A je možné dodat je později, když k tomu začne být důvod, což bych viděl jako optimální řešení. Ve fázi tvorby aplikace bych se soustředil na správné používání indexů. Maximálně u tabulek, které jsou kandidáty na budoucí rozdělení, sestavovat dotazy tak, aby se filtrovalo podle klíčového sloupce.
Slark
Profil *
Primárně se soustředím na optimalizaci tabulek a sql dotazů jako takových. Mockrát Vám děkuji za objasnění.

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: