Autor | Zpráva | ||
---|---|---|---|
Jáá Profil |
#1 · Zasláno: 17. 9. 2005, 13:45:35
Kolik můžu mít maximálně v jedné tabulce položek (1 položka = asi 10 řádek textu), aby to MySQL ještě v pohodě zvládalo (na běžném serveru)?.
|
||
Leo Profil |
#2 · Zasláno: 17. 9. 2005, 16:46:44
Ono nezalezi ani tak na mnozstvi zaznamu, ale na tom, co s nimi pak delate, nicmene miliony bez jakychkoliv problemu. Leo
|
||
rada_losik Profil |
#3 · Zasláno: 18. 9. 2005, 21:02:53
Mylim ze na poctu sloupcu nezalezi a radku uz vubec ne. Ale bude to mozna trosku pomalejsi pri nacitani coz je pochopitelne. Osobne bych to rozdelil do vice tabulek podle kategorii a spojil klici. Urcite nebudete vypisovat vsechny hodnity z tabulky (v radku).
|
||
krteczek Profil |
#4 · Zasláno: 19. 9. 2005, 09:01:38
jen dodám že když potřebujete zjistit jestli něco v tabulce je tak nepoužívejte tento postup:
ale lepší řešení bude:
v prvním příkladu vytáhnete z databáze celý řádek/všechny řádky které mají ve sloupci neco položku datum, uložíte tak do proměnne třeba 5MB dat ( máte velkou db se spoustou dat ),která následovně zahodíte, protože chcete jen vědět jestli taková položka v db existuje. je to náročné na vyhledávání, zabírá to pamět... v druhém příkladu jen databáze spočítá kolikrát se v db ve sloupci neco vyskytuje položka datum. což jak asi sami cítíte bude méně náročné na práci databáze a následně i php než první dotaz. ale i když potřebujete vytáhnout z databáze obsah, tak se skuste zamyslet, jestli opravdu potřebujete načíst obsah všech sloupců, nebo vám stečí jen 3 sloupce z 10, popřípadě pokud vypisujete nějaké tabulky o spoustě řídků tak používejte limit v dotaze ( order by id asc setřídí data vzestupně ) $dotaz ="select id, nazev, pocet, datum from tabulka where neco='necojineho' order by id asc limit 0, 20 " jejda jsem se zase rozepsal.. doufám že sem tu nenapsal nějakou chybu... pokud ano rád se poučím... krteczek |
||
Časová prodleva: 4 dny
|
|||
Anonymní Profil * |
#5 · Zasláno: 23. 9. 2005, 13:20:17
jj, krteczek ma pravdu - najvacsia tabulka v mojej db ma 312 MB - ak by si dal select * tak sa nedockas, lebo apache ti vypise time_out. Pri velkych projektoch musis mat relacnu db 100% normalizovanu - az do 5 stupna - na bezne mensie projekty ( do 1000 riadkov ) ti uplne postaci mat 3 stupen normalizacie. Samozrejme, cim lepsie navrhnes db, tym menej roboty budes mat v buducnosti. Este ak nevies robit s relacnymi db - normalizacia sa sklada z:
1. Atomizacia - kazdy udaj uvedeny v kazdom poli sa uz neda viac delit ( napr. ak mas stlpec "adresa" a mas v nom udaj "M. R. Stefanika 1234/56, 811 01 Bratislava" sam vidis, ze sa to da rozatomizovat na "ulica", "cislo_domu", "mesto", "psc") 2. Zavislost na PK - kazdy neklucovy atribut riadku MUSI byt plne zavisly na primarnom kluci ( tzn. primarny kluc musi byt unikatny - dalsie hodnoty volas ako select hodnota where id=primarny kluc ) 3. Kazdy neklucovy atribut musi byt netranzativne zavisly na primarnom kluci Boyce – Coddovau normalizaciu ti uz vysvetlovat nebudem... |
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0