Autor Zpráva
Jáá
Profil
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
Ono nezalezi ani tak na mnozstvi zaznamu, ale na tom, co s nimi pak delate, nicmene miliony bez jakychkoliv problemu. Leo
rada_losik
Profil
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
jen dodám že když potřebujete zjistit jestli něco v tabulce je tak nepoužívejte tento postup:

$dotaz="select * from tabulka where neco='datum' ";

ale lepší řešení bude:

$dotaz="select count(*) as pocet from tabulka where neco='datum' ";

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
Anonymní
Profil *
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...
Toto téma je uzamčeno. Odpověď nelze zaslat.

0