Az adatbázis adatbázis szerkezete
Először is, a "Mindent egy asztalnál" kifejezés csak az volt
az ingatlanok listájára. Tegyen valamit ebben a táblázatban
Ingatlanra nincs szükség :)
Adok neked egy kapcsolatot Habrrel.
"B-tree A keresési műveletet az O (t logt n) időben hajtják végre, ahol t -
a minimális mértékben. Itt fontos, hogy a lemez műveletek
csak O (log t n)!
A logaritmus azt jelenti, hogy ha növeli az adatbázist 2 alkalommal,
A keresési idő csak egy összehasonlító művelettel növekszik
(vagy egy lemezműveletet, bár ez nem mindig így van).
Így kiderül, hogy megtalálja a szükséges rekordot az 1.000.000 rekord között
Eltöltött 0,1 másodperc. És a 2.000.000 rekord közül (egy táblában)
0,101 másodpercet töltött.
Ha két táblázatban keresünk 1 000 000 rekordot, akkor
ez 0,2 másodpercet vesz igénybe.
1000, 500, 250, 125, 65, 33, 17, 8, 4, 2, 1
Összesen 1000 oldal 11 megközelítéshez.
50, 25, 12, 6, 3, 2, 1
Összesen 50 oldal 7 megközelítéshez. És mivel 20 könyvtárunk van, a teljes
140 megközelítés lesz. Ez több mint 10-szer több!
Szüksége van az igazi teszt eredményére?
vinxru, köszönöm a kibővített választ.
Igazad van, potenciálisan "A keresés sebessége annyiszor csökken, mint hány táblázatot osztott meg (feltételesen)."
De ez lesz a helyzet, ha minden táblázat azonos méretű (egy nagy asztal elválasztását 8 kis méretűre osztja), és ha indexeket keresünk. De valójában a táblázatok elválasztása nem a rekordok számán alapul, hanem tartalmukról és az adatok közötti kapcsolatról, nem pedig az összes oszlopról kell indexelni.
Ie A fő asztal ingatlan, bár sok oszlop, legalább öt, lesz azonos méretű - n. De az összes ismétlődő adatot nem szabad ugyanabban a nagy táblában elhelyezni.
Például többféle ház van az adatbázisban:
Cseh (9 emelet, panel, teherlift)
Csehek (12 emelet, panel, teherlift)
Cseh (9 emelet, tégla, teherfelvonóval)
Ha ezeket az adatokat a fő táblába helyezi, akkor először 4 oszlopot foglal el ("cseh", 9 "tégla", "igen").
Másodszor, hogy gyorsan keressük őket, további indexeket kell létrehoznunk.
Másképp tettem volna: különálló "ház típusú" táblát hoztam létre, amely ilyen típusúakat tartalmazna, és nagyon kicsi lenne. A fő táblában csak egy oszlop kerül hozzáadásra - a ház típusa.
Őszintén szólva nem mondhatom, hogy a "tégla kilences emeletes, cseh felvonó" második változatának keresése egy gyorsabb lesz, mint az első (indexekkel), de legalább az alap méretétől és a kényelemmel dolgozik vele.
Minden további táblázat mindig csökkenti a munka sebességét, mindent hozzáadunk egybe.
Egyetértek. Javítom, hogy "bármely további JOIN vagy kérés mindig csökkenti a munka sebességét".
Imádom a Normál formát, mint sokan itt. De régen rájöttem, hogy három véglet létezik: a termelékenység, a egyszerűség és a normál forma, melynek választania kell.