Autor | Zpráva | ||
---|---|---|---|
Slark Profil * |
#1 · Zasláno: 6. 9. 2015, 11:01:36
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 |
#2 · Zasláno: 6. 9. 2015, 12:13:22
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 * |
#3 · Zasláno: 6. 9. 2015, 12:27:15
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 |
#4 · Zasláno: 6. 9. 2015, 12:36:53
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 * |
#5 · Zasláno: 6. 9. 2015, 13:03:16
Primárně se soustředím na optimalizaci tabulek a sql dotazů jako takových. Mockrát Vám děkuji za objasnění.
|
||
Časová prodleva: 8 let
|
0