SQL ප්‍රශ්නයක්

Elaaz

Member
Apr 23, 2012
821
37
0
SQL Database වල Indexes වලින් මොකද වෙන්නේ මචන්ලා? පැහැදිලි කරලා දෙන්න පුලුවන්ද?
 

sdglhm

Junior member
  • Nov 29, 2011
    139
    14
    18
    >/dev/null
    සරලවම කියනවනම් Database එකේ තෝරගත්ත rows කීපයක් fast access/search වලට optimise කරල තියෙන වෙනම කොටසක්.

    පොතක පිටිපස්සෙ අපි බලන index එකක් තියෙන්නෙ. වචන අඩංගු වෙන එකක් පොතේ කොයි පිටුවෙද තියෙන්නෙ කියල. ඒවගේ තමයි data සේරම කියව කියව ඉන්නෙ නැතිව ඒකෙන් හොයල, එතනින් අදාල ඩේට එකට යන්න පුළුවන්.

    Tree index එකක් වගේ එකකින් binary tree search එකක් වෙන්නෙ. ගොඩක්ම වේගෙන් සර්ච් කරන්න පුළුවන් එතකොට db එක.
     

    Elaaz

    Member
    Apr 23, 2012
    821
    37
    0
    සරලවම කියනවනම් 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 ගානක වෙනසක් ඇත්තේ. අපිට නොදැනෙන නේද මචන්?
     

    TNHM

    Well-known member
  • Jan 3, 2017
    5,349
    15,586
    113
    Thanks මචන්. පැහැදිලිව තියෙනවා. මචන් data select කරනකොට fast උනාට insert, update, delete කරනකොට slow එකක් තියෙනවා කියන්නේ ඇත්තද? මම article එකක දැක්කේ. slow කීවට මම හිතන්නේ milliseconds ගානක වෙනසක් ඇත්තේ. අපිට නොදැනෙන නේද මචන්?

    ඔව් insert, update, delete slow.
    සහ DB එකට වැඩි ඉඩක් යනවා.
     

    TheNewThinker

    Well-known member
  • Dec 5, 2016
    1,458
    201
    63
    kanthare
    SQL Database වල Indexes වලින් මොකද වෙන්නේ මචන්ලා? පැහැදිලි කරලා දෙන්න පුලුවන්ද?

    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.
     

    Elaaz

    Member
    Apr 23, 2012
    821
    37
    0
    ඔව් insert, update, delete slow.
    සහ DB එකට වැඩි ඉඩක් යනවා.

    Thanks මචන්.

    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 මචන්. පුළුවන් නම් Indexes use කරන්න හොද සහ හොද නැති තැන් ගැන කලින් දුන්නා වගේ example එකක් දෙන්න.
     

    TNHM

    Well-known member
  • Jan 3, 2017
    5,349
    15,586
    113
    Thanks මචන්.



    Thanks මචන්. පුළුවන් නම් Indexes use කරන්න හොද සහ හොද නැති තැන් ගැන කලින් දුන්නා වගේ example එකක් දෙන්න.

    අපි හිතමු උබට ID (PK, AI) , FIRST_NAME, NIC, ADDRESS
    හැබැයි මේ table එකේ උබ වැඩියෙන්ම search කරන්නේ NIC එකෙන්. එහෙම වෙලාවට NIC එක index කරන්න.

    හැබැයි FIRST_NAME එකෙන් ඉදලා හිටලා search කරනවා. එහෙමයි කියලා එකත් index කරන්න එපා.

    ඔය index කතාව සම්පුර්ණයෙන් උබේ use case එක මත දිපෙන්ඩ් වෙනවා
     

    sdglhm

    Junior member
  • Nov 29, 2011
    139
    14
    18
    >/dev/null
    Thanks මචන්. පැහැදිලිව තියෙනවා. මචන් data select කරනකොට fast උනාට insert, update, delete කරනකොට slow එකක් තියෙනවා කියන්නේ ඇත්තද? මම article එකක දැක්කේ. slow කීවට මම හිතන්නේ milliseconds ගානක වෙනසක් ඇත්තේ. අපිට නොදැනෙන නේද මචන්?

    ඔව්. හේතුව තමයි heap එකට ඩේට එකක් නිකන්ම අතාරිනව වගේ නෙමෙයි Index එකක් තියෙනවනම්.

    ඩේට එක Index එකේ කොතනටද යන්න ඕනෙ කියල tree balance එක තියාගන්න ඕනෙ. ඒකට තරමක් වෙලාවක් යනව. කොයි leaf එකටද අදාල index එක එන්න ඕනෙ කියල හොයල හරි තැනට ඇඩ් කරන්න ඕනෙ.

    කලින් කියල තියෙනව වගේ Index හැම එකකටම ඇඩ් කරන්න යන්න එපා. index එකේ ඩේට වර්ගය අනුවත් වේගය වෙනස් වෙනව.

    අනිත් දේ තමයි index එකටත් තරමක ඉඩක් වෙන් වෙනව db එකෙන්. හැබැයි සාමාන්‍ය වෙබ් සයිට් එකක් හදනකොට නම් ලොකුවට හිතන්න දේවල් නෙමෙයි. නමුත් high-performance app එකක් හදනවනම් අනිවාර්යෙන් index planning වෙනම කරන්න ඕනෙ.
     

    Elaaz

    Member
    Apr 23, 2012
    821
    37
    0
    අපි හිතමු උබට ID (PK, AI) , FIRST_NAME, NIC, ADDRESS
    හැබැයි මේ table එකේ උබ වැඩියෙන්ම search කරන්නේ NIC එකෙන්. එහෙම වෙලාවට NIC එක index කරන්න.

    හැබැයි FIRST_NAME එකෙන් ඉදලා හිටලා search කරනවා. එහෙමයි කියලා එකත් index කරන්න එපා.

    ඔය index කතාව සම්පුර්ණයෙන් උබේ use case එක මත දිපෙන්ඩ් වෙනවා

    Thanks මචන්. මට පැහැදිලි දැන්. හොද start එකක් ලැබුනා.
     

    Elaaz

    Member
    Apr 23, 2012
    821
    37
    0

    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, ...);

    Thanks මචන්. මම බලන්නම්.
     

    Elaaz

    Member
    Apr 23, 2012
    821
    37
    0
    ඔව්. හේතුව තමයි heap එකට ඩේට එකක් නිකන්ම අතාරිනව වගේ නෙමෙයි Index එකක් තියෙනවනම්.

    ඩේට එක Index එකේ කොතනටද යන්න ඕනෙ කියල tree balance එක තියාගන්න ඕනෙ. ඒකට තරමක් වෙලාවක් යනව. කොයි leaf එකටද අදාල index එක එන්න ඕනෙ කියල හොයල හරි තැනට ඇඩ් කරන්න ඕනෙ.

    කලින් කියල තියෙනව වගේ Index හැම එකකටම ඇඩ් කරන්න යන්න එපා. index එකේ ඩේට වර්ගය අනුවත් වේගය වෙනස් වෙනව.

    අනිත් දේ තමයි index එකටත් තරමක ඉඩක් වෙන් වෙනව db එකෙන්. හැබැයි සාමාන්‍ය වෙබ් සයිට් එකක් හදනකොට නම් ලොකුවට හිතන්න දේවල් නෙමෙයි. නමුත් high-performance app එකක් හදනවනම් අනිවාර්යෙන් index planning වෙනම කරන්න ඕනෙ.

    Thanks මචන්. මට පැහැදිලි අදහසක් අවා. මම තව study කරන්නම්. daily transactions වෙන app එකකට apply කරන්න try කරන්නේ.
     

    Elaaz

    Member
    Apr 23, 2012
    821
    37
    0
    තව දේවල් කියල දෙන්න කැමති උන් කියදීපල්ලා :D:D
     

    isurues1

    Well-known member
  • Oct 12, 2011
    1,216
    215
    63
    Colombo
    Thanks මචන්. පැහැදිලිව තියෙනවා. මචන් data select කරනකොට fast උනාට insert, update, delete කරනකොට slow එකක් තියෙනවා කියන්නේ ඇත්තද? මම article එකක දැක්කේ. slow කීවට මම හිතන්නේ milliseconds ගානක වෙනසක් ඇත්තේ. අපිට නොදැනෙන නේද මචන්?

    Insert update wenuwata merge use karanna... speed wadi..
     

    Akithama

    Well-known member
  • May 24, 2014
    2,640
    2,547
    113
    හැම තැනම
    එතකොට Primary Key number විතරක් තියෙනකොට ඔය search speed එක වඩිද?
    eg:
    MOD/001
    MOD/002
    MOD/003

    වගේ Records godak(10,000) wage thiyenakota speed 1k adu wewida?