සරලවම කියනවනම් Database එකේ තෝරගත්ත rows කීපයක් fast access/search වලට optimise කරල තියෙන වෙනම කොටසක්.
පොතක පිටිපස්සෙ අපි බලන index එකක් තියෙන්නෙ. වචන අඩංගු වෙන එකක් පොතේ කොයි පිටුවෙද තියෙන්නෙ කියල. ඒවගේ තමයි data සේරම කියව කියව ඉන්නෙ නැතිව ඒකෙන් හොයල, එතනින් අදාල ඩේට එකට යන්න පුළුවන්.
Tree index එකක් වගේ එකකින් binary tree search එකක් වෙන්නෙ. ගොඩක්ම වේගෙන් සර්ච් කරන්න පුළුවන් එතකොට db එක.
Thanks මචන්. පැහැදිලිව තියෙනවා. මචන් data select කරනකොට fast උනාට insert, update, delete කරනකොට slow එකක් තියෙනවා කියන්නේ ඇත්තද? මම article එකක දැක්කේ. slow කීවට මම හිතන්නේ milliseconds ගානක වෙනසක් ඇත්තේ. අපිට නොදැනෙන නේද මචන්?
SQL Database වල Indexes වලින් මොකද වෙන්නේ මචන්ලා? පැහැදිලි කරලා දෙන්න පුලුවන්ද?
ඔව් insert, update, delete slow.
සහ DB එකට වැඩි ඉඩක් යනවා.
index tiyenda one godak dewal walata. ikmanata data search karnda. Ekama data row1 repeat nowenda wage ewata.
example hithanda iskole lamainge Nam potha. lamainge nam ekkama index number ekak denwa. ea number eka uniqe.. wena lamayekta ea namber eka hamben na. kalin kena as wela giyath.
index gana saralawa kiyanda amrui mata nam. experinace and therory ekka hodata therum yanwa.
Thanks මචන්.
Thanks මචන්. පුළුවන් නම් Indexes use කරන්න හොද සහ හොද නැති තැන් ගැන කලින් දුන්නා වගේ example එකක් දෙන්න.
Thanks මචන්. පැහැදිලිව තියෙනවා. මචන් data select කරනකොට fast උනාට insert, update, delete කරනකොට slow එකක් තියෙනවා කියන්නේ ඇත්තද? මම article එකක දැක්කේ. slow කීවට මම හිතන්නේ milliseconds ගානක වෙනසක් ඇත්තේ. අපිට නොදැනෙන නේද මචන්?
අපි හිතමු උබට ID (PK, AI) , FIRST_NAME, NIC, ADDRESS
හැබැයි මේ table එකේ උබ වැඩියෙන්ම search කරන්නේ NIC එකෙන්. එහෙම වෙලාවට NIC එක index කරන්න.
හැබැයි FIRST_NAME එකෙන් ඉදලා හිටලා search කරනවා. එහෙමයි කියලා එකත් index කරන්න එපා.
ඔය index කතාව සම්පුර්ණයෙන් උබේ use case එක මත දිපෙන්ඩ් වෙනවා
https://www.w3schools.com/sql/sql_create_index.asp
Updating a table with indexes takes more time than updating a table without (because the indexes also need an update). So, only create indexes on columns that will be frequently searched against.
Syntax
CREATE INDEX index_name
ON table_name (column1, column2, ...);
ඔව්. හේතුව තමයි heap එකට ඩේට එකක් නිකන්ම අතාරිනව වගේ නෙමෙයි Index එකක් තියෙනවනම්.
ඩේට එක Index එකේ කොතනටද යන්න ඕනෙ කියල tree balance එක තියාගන්න ඕනෙ. ඒකට තරමක් වෙලාවක් යනව. කොයි leaf එකටද අදාල index එක එන්න ඕනෙ කියල හොයල හරි තැනට ඇඩ් කරන්න ඕනෙ.
කලින් කියල තියෙනව වගේ Index හැම එකකටම ඇඩ් කරන්න යන්න එපා. index එකේ ඩේට වර්ගය අනුවත් වේගය වෙනස් වෙනව.
අනිත් දේ තමයි index එකටත් තරමක ඉඩක් වෙන් වෙනව db එකෙන්. හැබැයි සාමාන්ය වෙබ් සයිට් එකක් හදනකොට නම් ලොකුවට හිතන්න දේවල් නෙමෙයි. නමුත් high-performance app එකක් හදනවනම් අනිවාර්යෙන් index planning වෙනම කරන්න ඕනෙ.
Thanks මචන්. පැහැදිලිව තියෙනවා. මචන් data select කරනකොට fast උනාට insert, update, delete කරනකොට slow එකක් තියෙනවා කියන්නේ ඇත්තද? මම article එකක දැක්කේ. slow කීවට මම හිතන්නේ milliseconds ගානක වෙනසක් ඇත්තේ. අපිට නොදැනෙන නේද මචන්?
Insert update wenuwata merge use karanna... speed wadi..