Pokud máte v tabulce pouze 1 řádek, mohutnost indexu by samozřejmě měla být 1. Jde jen o počítání unikátních hodnot.
Pokud si index představujete jako vyhledávací tabulku založenou na segmentech (jako hash), pak mohutnost je počet segmentů.
Funguje to takto:Když vytvoříte index přes sadu sloupců (a,b,c,d)
, pak databáze projde všechny řádky v tabulce a podívá se na uspořádané čtveřice těchto 4 sloupců pro každý řádek. Řekněme, že váš stůl vypadá takto:
a b c d e
-- -- -- -- --
1 1 1 1 200
1 1 1 1 300
1 2 1 1 200
1 3 1 1 200
Databáze se tedy dívá pouze na 4 sloupce (a,b,c,d):
a b c d
-- -- -- --
1 1 1 1
1 2 1 1
1 3 1 1
Vidíte, že zbývají pouze 3 jedinečné řádky? Ty se stanou našimi vědrami, ale k tomu se vrátíme. Ve skutečnosti existuje také ID záznamu nebo identifikátor řádku pro každý řádek v tabulce. Takže naše původní tabulka vypadá takto:
(row id) a b c d e
-------- -- -- -- -- --
00000001 1 1 1 1 200
00000002 1 1 1 1 300
00000003 1 2 1 1 200
00000004 1 3 1 1 200
Takže když se podíváme pouze na 4 sloupce (a,b,c,d), ve skutečnosti se díváme také na id řádku:
(row id) a b c d
-------- -- -- -- --
00000001 1 1 1 1
00000002 1 1 1 1
00000003 1 2 1 1
00000004 1 3 1 1
Ale my chceme hledat podle (a,b,c,d) a ne podle id řádku, takže vytvoříme něco takového:
(a,b,c,d) (row id)
--------- --------
1,1,1,1 00000001
1,1,1,1 00000002
1,2,1,1 00000003
1,3,1,1 00000004
A nakonec seskupíme všechna ID řádků, které mají identické hodnoty (a,b,c,d):
(a,b,c,d) (row id)
--------- ---------------------
1,1,1,1 00000001 and 00000002
1,2,1,1 00000003
1,3,1,1 00000004
Vidíš to? Hodnoty (a,b,c,d), které jsou (1,1,1,1) (1,2,1,1) a (1,3,1,1), se staly klíči pro naši vyhledávací tabulku do řádků původní tabulky.
Ve skutečnosti se nic z toho ve skutečnosti neděje, ale mělo by vám to poskytnout dobrou představu o tom, jak lze provést „naivní“ (tj. přímočarou) implementaci indexu.
Ale sečteno a podtrženo:mohutnost pouze měří, kolik jedinečných řádků je v indexu. A v našem příkladu to byl počet klíčů v naší vyhledávací tabulce, který byl 3.
Doufám, že to pomůže!