Optimalizace tabulky – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Optimalizace tabulky – MySQL – Fórum – Programujte.comOptimalizace tabulky – MySQL – Fórum – Programujte.com

 

soudruh0
Newbie
30. 8. 2008   #1
-
0
-

Dobrý den, vytvářím jednoduchý RS. Ovšem tabulka s články mi příde příliš neoptimalizovaná a tak bych vás chtěl požádat o radu.
Současná tabulka vypadá asi takto



CREATE TABLE IF NOT EXISTS `clanky_clanky` (
`id` int(100) NOT NULL auto_increment,
`datum_vytvoreni` datetime NOT NULL default '0000-00-00 00:00:00',
`seo_url` varchar(120) NOT NULL,
`titulek` varchar(100) NOT NULL,
`kategorie` int(10) NOT NULL,
`zobrazit` int(10) NOT NULL,
`uvod` varchar(1000) NOT NULL,
`text` longtext NOT NULL,
`autor` int(10) NOT NULL,
`obrazek` varchar(500) NOT NULL,
`precteni` int(100) NOT NULL,
`komentare` int(1) NOT NULL,
`klicova_slova` varchar(500) NOT NULL,
`datum_vydani` datetime NOT NULL default '0000-00-00 00:00:00',
`sablona` int(10) NOT NULL default '1',
PRIMARY KEY (`id`),
KEY `seo_url` (`seo_url`,`kategorie`,`zobrazit`,`autor`,`precteni`,`klicova_slova`,`datum_vydani`,`datum_vytvoreni`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Nahlásit jako SPAM
IP: 82.100.63.–
Santas0
Věrný člen
30. 8. 2008   #2
-
0
-

ak sa nemylim
`precteni` int(100) NOT NULL,
`klicova_slova` varchar(500) NOT NULL,
int da max 11 a varchar 255
alebo mi nieco uniklo?

Nahlásit jako SPAM
IP: 195.91.56.–
http://psandtner.sk/blog
soudruh0
Newbie
30. 8. 2008   #3
-
0
-

Je to možný, tabulka byla tvořena přez PhpMyAdmin a když si zobrazím tabulku tak se to i tak zobrazuje...
V dřívější verzi PhpMyadmina se to podle velikosti čísla měnilo z VARCHAR na další druhy a tak jsem si s tím nelámal hlavu, kouknu na to a opravím to. Děkuji za upozornění, u sloupce precteni byla ta jedna nula preklep... preci jen 99999999.... precteni je trochu moc

Nahlásit jako SPAM
IP: 82.100.63.–
bukaj0
Věrný člen
30. 8. 2008   #4
-
0
-

soudruh
tabulka s články mi příde příliš neoptimalizovaná
Jak podle tebe vypadá optimalizovaná tabulka? :o) A co přesně myslíš tou optimalizací?

Jinak, do sloupce klicova_slova se ukládá řetězec klíčových slov oddělných nějakým oddělovačem, že? Pokud je možné vyhledávání podle klíčkových slov určitě by měla jít do další tabulky, které by byla s touhle ve vazbě M:N. Pokud se ale používají jen např. do <meta name="keywords">, není to podle mě nutné.

Sloupce kategorie, autor a sablona jsou cizí klíče (foreign keys)? Hodil bych na ně samostané indexy.

Na sloupec seo_url by podle mě bylo dobré hodit UNIQUE index, aby dva články nemohly mít stejnou seo_url, což by znemožnilo hledání podle ní. Pokud se ale hledá podle id a seo_url slouží jenom jako předvypočítaná hodnota, není to potřeba.

KEY `seo_url` (`seo_url`,`kategorie`,`zobrazit`,`autor`,`precteni`,`klicova_slova`,`datum_vydani`,`datum_vytvoreni`)
Pro vytváříš jeden index nad tolika sloupci? :o)

Nahlásit jako SPAM
IP: 85.70.13.–
Jak se správně ptát? -> http://www.hash.cz/inferno/otazky.html[br][br] Po programování je člověk hladovej.
soudruh0
Newbie
30. 8. 2008   #5
-
0
-

seo_url nemusí být jedinečná, protože je tu ještě kategorie ( tj. /clanky/seo-kategorie/seo-clanku/ ) a zbytek je ošetřen v administraci.
klíčová slova jsou pro keywords i pro vyhledávání, takže dát do zvláštní tabulky?
Optimalizací jsem myslel vylepšit aby byla práce rychlejší a generovala se menší zátěž na servr.
sloupce kategorie, autor a sablona mají jako hodnotu ID pomocí kterého se tahají údaje z jiné DB.

Nahlásit jako SPAM
IP: 82.100.63.–
bukaj0
Věrný člen
30. 8. 2008   #6
-
0
-

soudruh
seo_url nemusí být jedinečná, protože je tu ještě kategorie
Pak hodit UNIQUE index na sloupce seo_url a kategorie (UNIQUE (seo_url, kategorie)).

a zbytek je ošetřen v administraci.
Ale mít to ošetřené v databázi je jistota ;o)

klíčová slova jsou pro keywords i pro vyhledávání, takže dát do zvláštní tabulky?
Každopádně. V každé buňce tabulky by měly být jen atomické hodnoty. Takže pokud klicova_slova nebereš jako atom, měla by se rozdělit.

Nahlásit jako SPAM
IP: 85.70.13.–
Jak se správně ptát? -> http://www.hash.cz/inferno/otazky.html[br][br] Po programování je člověk hladovej.
soudruh0
Newbie
31. 8. 2008   #7
-
0
-

Děkuji za rady, bral jsem to z pohledu že na všem se dá něco vylepšit.

Nahlásit jako SPAM
IP: 82.100.63.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 14 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý