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.

Kapcsolódó cikkek