ແນວຄິດລົບກວນ


ການນໍາສະເຫນີ

ວິທີການຈັດຕັ້ງ Hash File ແມ່ນວິທີການ ໜຶ່ງ ທີ່ເກັບຂໍ້ມູນຢູ່ທີ່ທ່ອນຂໍ້ມູນເຊິ່ງທີ່ຢູ່ຂອງມັນຖືກສ້າງຂື້ນໂດຍການໃຊ້ຟັງຊັນ. ສະຖານທີ່ ໜ່ວຍ ຄວາມ ຈຳ ທີ່ບັນທຶກເຫລົ່ານີ້ຖືກເກັບໄວ້ຖືກເອີ້ນວ່າບລັອກຂໍ້ມູນຫລືຖັງຂໍ້ມູນ. ຖັງຂໍ້ມູນນີ້ມີຄວາມສາມາດເກັບຮັກສາບັນທຶກ ໜຶ່ງ ຫຼືຫຼາຍຂໍ້.

ຫນ້າທີ່ hash ສາມາດໃຊ້ຄ່າຂອງຖັນໃດໆເພື່ອສ້າງທີ່ຢູ່. ເວລາສ່ວນໃຫຍ່, ໜ້າ ທີ່ hash ໃຊ້ຄີຫລັກເພື່ອສ້າງດັດສະນີ hash - ທີ່ຢູ່ຂອງບລັອກຂໍ້ມູນ. ຟັງຊັ່ນ Hash ສາມາດເຮັດໄດ້ງ່າຍໆໃນ ໜ້າ ທີ່ທາງຄະນິດສາດ. ພວກເຮົາຍັງສາມາດພິຈາລະນາຫຼັກຫຼັກຂອງມັນເອງເປັນທີ່ຢູ່ຂອງບລັອກຂໍ້ມູນ. ນັ້ນ ໝາຍ ຄວາມວ່າແຕ່ລະແຖວຈະຖືກເກັບຢູ່ທີ່ທ່ອນຂໍ້ມູນເຊິ່ງທີ່ຢູ່ຂອງມັນຈະເປັນຄືກັບຄີຫລັກ. ນີ້ຫມາຍຄວາມວ່າວິທີການທີ່ hash ງ່າຍດາຍສາມາດຢູ່ໃນຖານຂໍ້ມູນ.

ແຜນວາດຂ້າງເທິງສະແດງທີ່ຢູ່ບລັອກຂໍ້ມູນຄືກັນກັບຄ່າຫລັກ. ຟັງຊັນນີ້ຍັງສາມາດເຮັດໄດ້ງ່າຍໆເຊັ່ນ: mod, sin, cos, exponential ແລະອື່ນໆ. ຈິນຕະນາການວ່າພວກເຮົາມີ ໜ້າ ທີ່ຄືກັນກັບ mod (5) ເພື່ອ ກຳ ນົດທີ່ຢູ່ຂອງຂໍ້ມູນບລັອກ. ສະນັ້ນມີຫຍັງເກີດຂື້ນກັບກໍລະນີຂ້າງເທິງ? ມັນໃຊ້ mod (5) ໃສ່ຄີຫລັກແລະສ້າງ 3,3,1,4 ແລະ 2 ຕາມ ລຳ ດັບແລະບັນທຶກຖືກເກັບໄວ້ໃນທີ່ຢູ່ຂໍ້ມູນບລັອກເຫຼົ່ານັ້ນ.

ຈາກຂ້າງເທິງສອງແຜນວາດຕອນນີ້ມັນຈະແຈ້ງວ່າການເຮັດວຽກຂອງ hash ເຮັດວຽກໄດ້ແນວໃດ.

ມີສອງປະເພດຂອງອົງການຈັດຕັ້ງເອກະສານ hash - static ແລະ ການເຄື່ອນໄຫວ ແຮກ.

Hash Static

ໃນວິທີການຂອງ hashing ນີ້, ທີ່ຢູ່ຖັງຂໍ້ມູນທີ່ໄດ້ຮັບຈະເປັນຄືກັນສະ ເໝີ ໄປ. ນັ້ນ ໝາຍ ຄວາມວ່າ, ຖ້າພວກເຮົາຕ້ອງການສ້າງທີ່ຢູ່ ສຳ ລັບ EMP_ID = 103 ໂດຍໃຊ້ mod (5) function, ມັນຈະສົ່ງຜົນໃຫ້ທີ່ຢູ່ຖັງດຽວກັນ 3. ມັນຈະບໍ່ມີການປ່ຽນແປງໃດໆຕໍ່ທີ່ຢູ່ຖັງນີ້. ເພາະສະນັ້ນ ຈຳ ນວນຂອງຖັງຂໍ້ມູນທີ່ຢູ່ໃນຄວາມຊົງ ຈຳ ສຳ ລັບການນິຍົມນີ້ຍັງຄົງຢູ່ຕະຫຼອດເວລາ. ໃນຕົວຢ່າງຂອງພວກເຮົາ, ພວກເຮົາຈະມີຖັງເກັບຂໍ້ມູນ XNUMX ໜ່ວຍ ໃນ ໜ່ວຍ ຄວາມ ຈຳ ທີ່ໃຊ້ເພື່ອເກັບຂໍ້ມູນ.

ຄົ້ນຫາບັນທຶກ

ການນໍາໃຊ້ຫນ້າທີ່ hash, ທີ່ຢູ່ຖັງຂໍ້ມູນຈະຖືກສ້າງຂື້ນສໍາລັບລະຫັດ hash. ຈາກນັ້ນບັນທຶກຈະຖືກດຶງມາຈາກສະຖານທີ່ນັ້ນ. ie; ຖ້າພວກເຮົາຕ້ອງການດຶງເອົາບັນທຶກທັງ ໝົດ ສຳ ລັບບັດປະ ຈຳ ຕົວ 104, ແລະຖ້າວ່າ ໜ້າ ທີ່ hash ແມ່ນ mod (5) ໃນ ID, ທີ່ຢູ່ທີ່ຜະລິດກໍ່ຈະເປັນ 4. ຫຼັງຈາກນັ້ນ, ພວກເຮົາຈະໄດ້ຮັບທີ່ຢູ່ 4 ໂດຍກົງແລະເກັບເອົາບັນທຶກທັງ ໝົດ ສຳ ລັບ ID 104. ທີ່ນີ້ ID ເຮັດ ໜ້າ ທີ່ເປັນ hash key.

ການໃສ່ບັນທຶກ

ເມື່ອຕ້ອງການບັນທຶກ ໃໝ່ ໃສ່ຕາຕະລາງ, ພວກເຮົາຈະສ້າງທີ່ຢູ່ ສຳ ລັບບັນທຶກ ໃໝ່ ໂດຍອີງໃສ່ຫຼັກ hash ຂອງມັນ. ເມື່ອໄດ້ສ້າງທີ່ຢູ່, ບັນທຶກຈະຖືກເກັບຢູ່ໃນສະຖານທີ່ນັ້ນ.

ລົບບັນທຶກ

ການ ນຳ ໃຊ້ ໜ້າ ທີ່ hash ກ່ອນອື່ນ ໝົດ ພວກເຮົາຈະເກັບເອົາບັນທຶກທີ່ຄາດວ່າຈະຖືກລຶບອອກ. ຫຼັງຈາກນັ້ນພວກເຮົາຈະເອົາບັນທຶກ ສຳ ລັບທີ່ຢູ່ນັ້ນຢູ່ໃນຄວາມຊົງ ຈຳ.

ປັບປຸງບັນທຶກ

ບັນທຶກຂໍ້ມູນທີ່ຖືກ ໝາຍ ໄວ້ ສຳ ລັບການປັບປຸງຈະຖືກຄົ້ນຫາໂດຍໃຊ້ຟັງຊັນ hash ທີ່ຄົງຄ້າງແລະຈາກນັ້ນບັນທຶກທີ່ຢູ່ນັ້ນຈະຖືກປັບປຸງ.

 

ສົມມຸດວ່າພວກເຮົາຕ້ອງເອົາບັນທຶກບາງຢ່າງເຂົ້າໃນເອກະສານ. ແຕ່ທີ່ຢູ່ຖັງຂໍ້ມູນທີ່ຜະລິດໂດຍຟັງຊັນ hash ແມ່ນເຕັມຫລືຂໍ້ມູນມີຢູ່ໃນທີ່ຢູ່ນັ້ນ. ພວກເຮົາໃສ່ຂໍ້ມູນແນວໃດ? ສະຖານະການນີ້ຢູ່ໃນສະພາບທີ່ເປັນປະກົດການຫຍໍ້ທໍ້ແມ່ນເອີ້ນວ່າ ຄຸລົ້ນ. ນີ້ແມ່ນ ໜຶ່ງ ໃນສະຖານະການ / ຂໍ້ບົກຜ່ອງທີ່ ສຳ ຄັນໃນວິທີການນີ້. ພວກເຮົາຈະປະຫຍັດຂໍ້ມູນຢູ່ໃສໃນກໍລະນີນີ້? ພວກເຮົາບໍ່ສາມາດສູນເສຍຂໍ້ມູນໄດ້. ມີຫລາຍວິທີການທີ່ຈະເອົາຊະນະສະຖານະການນີ້. ວິທີການ ນຳ ໃຊ້ທົ່ວໄປສ່ວນໃຫຍ່ແມ່ນຢູ່ຂ້າງລຸ່ມນີ້:

hashing ປິດ

ໃນວິທີການນີ້ພວກເຮົາແນະ ນຳ ຖັງຂໍ້ມູນ ໃໝ່ ທີ່ມີທີ່ຢູ່ດຽວກັນແລະເຊື່ອມຕໍ່ມັນຫຼັງຈາກຖັງຂໍ້ມູນເຕັມ. ວິທີການເຫຼົ່ານີ້ຂອງການເອົາຊະນະຖັງເກີນລົ້ນເອີ້ນວ່າການປິດປາກປິດ ຕ່ອງໂສ້ລົ້ນ.

ພິຈາລະນາວ່າພວກເຮົາຕ້ອງເອົາບັນທຶກ ໃໝ່ R2 ເຂົ້າໃນຕາຕະລາງ. ຟັງຊັນທີ່ສະຖິດຈະສ້າງທີ່ຢູ່ຖັງຂໍ້ມູນເປັນ 'AACDBF'. ແຕ່ຖັງນີ້ເຕັມທີ່ເພື່ອເກັບຂໍ້ມູນ ໃໝ່. ສິ່ງທີ່ເຮັດໃນກໍລະນີນີ້ແມ່ນຖັງຂໍ້ມູນ ໃໝ່ ທີ່ຖືກເພີ່ມໃສ່ໃນຕອນທ້າຍຂອງຖັງຂໍ້ມູນ 'AACDBF' ແລະຖືກເຊື່ອມໂຍງກັບມັນ. ຫຼັງຈາກນັ້ນ, ບັນທຶກ ໃໝ່ R2 ຖືກໃສ່ເຂົ້າໃນຖັງ ໃໝ່. ດັ່ງນັ້ນມັນຮັກສາທີ່ຢູ່ທີ່ບໍ່ມີຄວາມສັບສົນ. ມັນສາມາດເພີ່ມຖັງຂໍ້ມູນ ໃໝ່ ໄດ້ທຸກ ຈຳ ນວນ, ເມື່ອມັນເຕັມ.

ເປີດ Hashing

ໃນວິທີການດັ່ງກ່າວ, ຂໍ້ມູນບລັອກທີ່ມີຢູ່ຕໍ່ໄປແມ່ນໃຊ້ເພື່ອປ້ອນບັນທຶກ ໃໝ່, ແທນທີ່ຈະຂຽນທັບໃສ່ເກົ່າ. ວິທີການນີ້ເອີ້ນວ່າ Open Hashing ຫຼື ການສອບສວນເປັນເສັ້ນ.

ໃນຕົວຢ່າງຂ້າງລຸ່ມນີ້, R2 ແມ່ນບັນທຶກ ໃໝ່ ທີ່ຕ້ອງໄດ້ເອົາລົງ. ແຕ່ຫນ້າທີ່ hash ສ້າງທີ່ຢູ່ເປັນ 237. ແຕ່ວ່າມັນເຕັມແລ້ວ. ດັ່ງນັ້ນລະບົບຄົ້ນຫາຖັງຂໍ້ມູນທີ່ມີຢູ່ຕໍ່ໄປ, 238 ແລະໃຫ້ R2 ມອບໃຫ້ມັນ.

ໃນການສອບຖາມເສັ້ນ, ຄວາມແຕກຕ່າງລະຫວ່າງຖັງເກົ່າແລະຖັງ ໃໝ່ ມັກຈະມີການສ້ອມແຊມແລະມັນຈະເປັນ 1 ກໍລະນີສ່ວນໃຫຍ່.

ການສອບສວນ Quadratic

ນີ້ແມ່ນຄ້າຍຄືກັບການສືບສວນແບບເສັ້ນ. ແຕ່ນີ້, ຄວາມແຕກຕ່າງລະຫວ່າງຖັງເກົ່າແລະ ໃໝ່ ແມ່ນເປັນເສັ້ນ. ພວກເຮົາ ນຳ ໃຊ້ ໜ້າ ທີ່ quadratic ເພື່ອ ກຳ ນົດທີ່ຢູ່ຖັງ ໃໝ່.

ການສ້າງຄູ່ສອງເທື່ອ

ນີ້ກໍ່ແມ່ນອີກວິທີ ໜຶ່ງ ຂອງການສອບສວນແບບເສັ້ນສາຍ. ໃນທີ່ນີ້ຄວາມແຕກຕ່າງແມ່ນຄົງທີ່ຄືກັບການສອບສວນແບບເສັ້ນ, ແຕ່ຄວາມແຕກຕ່າງຄົງທີ່ນີ້ຖືກຄິດໄລ່ໂດຍການໃຊ້ຟັງຊັນອື່ນ. ເພາະສະນັ້ນຊື່ດັ່ງກ່າວແມ່ນມີຄວາມ ໝາຍ ສອງຢ່າງ.

Hashing ແບບເຄື່ອນໄຫວ

ວິທີການເຮັດໃຫ້ມີລົມຫາຍໃຈນີ້ຖືກ ນຳ ໃຊ້ເພື່ອເອົາຊະນະບັນຫາຂອງການຂີ້ເຮື້ອນທີ່ບໍ່ສະ ໝໍ່າ ສະ ເໝີ - ການຖອກນ້ ຳ ໃສ່ຖັງ. ໃນວິທີການຂອງ hashing ນີ້, ຖັງຂໍ້ມູນຈະເລີນເຕີບໂຕຫລືຫົດຕົວລົງຍ້ອນວ່າບັນທຶກເພີ່ມຂື້ນຫຼືຫຼຸດລົງ. ວິທີການຂອງ hashing ນີ້ແມ່ນເປັນທີ່ຮູ້ຈັກຍັງເປັນວິທີການ hashing ຂະຫຍາຍ. ໃຫ້ພວກເຮົາເບິ່ງຕົວຢ່າງເພື່ອເຂົ້າໃຈວິທີການນີ້.

ພິຈາລະນາມີສາມບັນທຶກ R1, R2 ແລະ R4 ຢູ່ໃນຕາຕະລາງ. ບັນທຶກເຫລົ່ານີ້ສ້າງທີ່ຢູ່ 100100, 010110 ແລະ 110110 ຕາມ ລຳ ດັບ. ວິທີການເກັບຮັກສານີ້ພິຈາລະນາພຽງແຕ່ສ່ວນ ໜຶ່ງ ຂອງທີ່ຢູ່ນີ້ - ໂດຍສະເພາະແມ່ນການເກັບຮັກສາຂໍ້ມູນໄວ້ກ່ອນ. ສະນັ້ນມັນພະຍາຍາມທີ່ຈະໂຫລດສາມຂອງມັນຢູ່ທີ່ 0 ແລະ 1.

ຈະເກີດຫຍັງຂຶ້ນກັບ R3 ຢູ່ນີ້? ບໍ່ມີພື້ນທີ່ຖັງ ສຳ ລັບ R3. ຖັງຕ້ອງໄດ້ເຕີບໃຫຍ່ແບບເຄື່ອນໄຫວເພື່ອຮອງຮັບ R3. ສະນັ້ນມັນປ່ຽນທີ່ຢູ່ມີ 2 ບິດຫຼາຍກ່ວາ 1 ບິດ, ແລະຫຼັງຈາກນັ້ນມັນຈະປັບປຸງຂໍ້ມູນທີ່ມີຢູ່ໃຫ້ມີທີ່ຢູ່ 2 ບິດ. ຫຼັງຈາກນັ້ນມັນກໍ່ພະຍາຍາມຮອງຮັບ R3.

ໃນປັດຈຸບັນພວກເຮົາສາມາດເຫັນໄດ້ວ່າທີ່ຢູ່ຂອງ R1 ແລະ R2 ໄດ້ຖືກປ່ຽນໄປເພື່ອສະທ້ອນໃຫ້ເຫັນທີ່ຢູ່ ໃໝ່ ແລະ R3 ກໍ່ໄດ້ຖືກໃສ່ລົງເຊັ່ນກັນ. ເມື່ອຂະ ໜາດ ຂອງຂໍ້ມູນເພີ່ມຂື້ນ, ມັນພະຍາຍາມໃສ່ໃນຖັງທີ່ມີຢູ່ແລ້ວ. ຖ້າບໍ່ມີຖັງ, ຈຳ ນວນຖັງຈະຖືກເພີ່ມຂື້ນເພື່ອພິຈາລະນາທີ່ຢູ່ທີ່ໃຫຍ່ກວ່າ, ແລະເພາະສະນັ້ນການເພີ່ມຂື້ນຖັງ. ຖ້າພວກເຮົາລຶບບັນທຶກໃດໆແລະຖ້າຖານຂໍ້ມູນສາມາດເກັບໄວ້ດ້ວຍຖັງນ້ອຍລົງ, ມັນຈະເຮັດໃຫ້ຂະ ໜາດ ຖັງນ້ອຍລົງ. ມັນກົງກັນຂ້າມກັບສິ່ງທີ່ພວກເຮົາໄດ້ເຫັນມາຂ້າງເທິງ. ນີ້ແມ່ນວິທີການທີ່ hash ເຄື່ອນໄຫວ. ໃນເບື້ອງຕົ້ນພຽງແຕ່ດັດສະນີ / ທີ່ຢູ່ບາງສ່ວນທີ່ຜະລິດໂດຍຫນ້າທີ່ hash ຖືກຖືວ່າເປັນການເກັບຂໍ້ມູນ. ຍ້ອນວ່າ ຈຳ ນວນຂໍ້ມູນເພີ່ມຂື້ນແລະມີຄວາມ ຈຳ ເປັນຕ້ອງມີຖັງຫຼາຍ, ສ່ວນໃຫຍ່ຂອງດັດຊະນີກໍ່ຖືວ່າເກັບຮັກສາຂໍ້ມູນ.

ຂໍ້ໄດ້ປຽບຂອງ hash Dynamic

  • ການປະຕິບັດບໍ່ໄດ້ຫຼຸດລົງຍ້ອນວ່າຂໍ້ມູນເຕີບໃຫຍ່ໃນລະບົບ. ມັນພຽງແຕ່ເພີ່ມຂະ ໜາດ ໜ່ວຍ ຄວາມ ຈຳ ເພື່ອຮອງຮັບຂໍ້ມູນ.
  • ເນື່ອງຈາກມັນເຕີບໃຫຍ່ແລະນ້ອຍລົງດ້ວຍຂໍ້ມູນ, ຄວາມ ຈຳ ໄດ້ຖືກ ນຳ ໃຊ້ເປັນຢ່າງດີ. ມັນຈະບໍ່ມີຄວາມຊົງ ຈຳ ທີ່ບໍ່ໄດ້ໃຊ້ຕົວະ.
  • ທີ່ດີ ສຳ ລັບຖານຂໍ້ມູນແບບເຄື່ອນໄຫວທີ່ຂໍ້ມູນຈະເລີນເຕີບໂຕແລະຫົດຕົວເລື້ອຍໆ.

 

ຂໍ້ເສຍປຽບຂອງ hashing Dynamic

  • ເມື່ອຂະ ໜາດ ຂໍ້ມູນເພີ່ມຂື້ນ, ຂະ ໜາດ ຖັງກໍ່ເພີ່ມຂື້ນເຊັ່ນກັນ. ທີ່ຢູ່ເຫຼົ່ານີ້ຈະຖືກຮັກສາໄວ້ໃນຕາຕະລາງທີ່ຢູ່ຖັງ. ນີ້ແມ່ນຍ້ອນວ່າ, ທີ່ຢູ່ຂອງຂໍ້ມູນຈະສືບຕໍ່ປ່ຽນແປງຍ້ອນວ່າຖັງຂະຫຍາຍຕົວແລະນ້ອຍລົງ. ເມື່ອມີຂໍ້ມູນເພີ່ມຂື້ນຢ່າງຫຼວງຫຼາຍ, ການຮັກສາຕາຕະລາງທີ່ຢູ່ຖັງນີ້ກາຍເປັນເລື່ອງທີ່ ໜ້າ ເບື່ອ ໜ່າຍ.
  • ສະຖານະການທີ່ລົ້ນນ້ ຳ ຄຸຈະເກີດຂື້ນໃນກໍລະນີນີ້ເຊັ່ນກັນ. ແຕ່ວ່າມັນອາດຈະໃຊ້ເວລາ ໜ້ອຍ ທີ່ຈະສາມາດບັນລຸສະຖານະການດັ່ງກ່າວໄດ້ກ່ວາສິ່ງທີ່ບໍ່ສະຫງົບ.

ການປຽບທຽບການດັດສະນີແລະ Hashing

ດັດສະນີສັ່ງ

ແຮກ

ທີ່ຢູ່ທີ່ຢູ່ໃນຄວາມຊົງ ຈຳ ແມ່ນຖືກຈັດຮຽງ ສຳ ລັບຄ່າທີ່ ສຳ ຄັນ. ຄ່າ ສຳ ຄັນນີ້ສາມາດເປັນກຸນແຈຫລັກຫລືຖັນອື່ນໆໃນຕາຕະລາງ. ທີ່ຢູ່ທີ່ຢູ່ຈະຖືກສ້າງຂື້ນໂດຍໃຊ້ຟັງຊັນ hash ໃສ່ຄ່າຫລັກ. ຄ່າ ສຳ ຄັນນີ້ສາມາດເປັນກຸນແຈຫລັກຫລືຖັນອື່ນໆໃນຕາຕະລາງ.
ປະສິດທິພາບຂອງວິທີການນີ້ລົງມາຍ້ອນວ່າຂໍ້ມູນເພີ່ມຂື້ນໃນແຟ້ມ. ເນື່ອງຈາກວ່າມັນເກັບຂໍ້ມູນໄວ້ໃນຮູບແບບທີ່ຖືກຄັດເລືອກ, ເມື່ອມີການປະຕິບັດງານໃສ່ / ລຶບ / ປັບປຸງ, ຄວາມພະຍາຍາມພິເສດເພື່ອຈັດຮຽງບັນທຶກແມ່ນມີຄວາມ ຈຳ ເປັນ. ນີ້ຊ່ວຍຫຼຸດຜ່ອນການປະຕິບັດງານຂອງມັນ. ການປະຕິບັດງານຂອງ hashing ແບບເຄື່ອນໄຫວຈະເປັນການດີເມື່ອມີການເພີ່ມແລະການລຶບຂໍ້ມູນເລື້ອຍໆ. ແຕ່ຖ້າຖານຂໍ້ມູນໃຫຍ່ຫຼາຍ, ການ ບຳ ລຸງຮັກສາຈະມີລາຄາຖືກກວ່າ.

hashing ຄົງທີ່ຈະເປັນການດີ ສຳ ລັບຖານຂໍ້ມູນນ້ອຍກວ່າບ່ອນທີ່ id ຂະ ໜາດ ບັນທຶກທີ່ຮູ້ກັນກ່ອນ ໜ້າ ນີ້. ຖ້າມີການເຕີບໂຕຂອງຂໍ້ມູນ, ມັນຈະສົ່ງຜົນໃຫ້ເກີດບັນຫາຮ້າຍແຮງເຊັ່ນ: ການຖອກນ້ ຳ ໃສ່ຖັງ.

ມັນຈະມີຂໍ້ມູນທີ່ບໍ່ໄດ້ໃຊ້ເນື່ອງຈາກການລຶບ / ປັບປຸງການ ດຳ ເນີນງານ. ບັນດາຂໍ້ມູນເຫລົ່ານີ້ຈະບໍ່ຖືກປ່ອຍອອກມາເພື່ອ ນຳ ໃຊ້ຄືນ ໃໝ່. ດັ່ງນັ້ນການ ບຳ ລຸງຮັກສາຄວາມຊົງ ຈຳ ເປັນແຕ່ລະໄລຍະແມ່ນ ຈຳ ເປັນ. ອີກຢ່າງ ໜຶ່ງ, ຄວາມຊົງ ຈຳ ແມ່ນເສຍແລະການປະຕິບັດກໍ່ຈະເຮັດໃຫ້ເສື່ອມໂຊມ. ນອກຈາກນີ້ມັນຈະມີຄ່າໃຊ້ຈ່າຍຫຼາຍເກີນໄປເພື່ອຮັກສາຄວາມຊົງ ຈຳ. ໃນສະຖານະການທີ່ຍັງຄົງຄ້າງແລະແບບເຄື່ອນໄຫວ, ຄວາມຊົງ ຈຳ ໄດ້ຮັບການຄຸ້ມຄອງເປັນຢ່າງດີ. ການຖອກນ້ ຳ ໃສ່ຄຸກໍ່ໄດ້ຖືກຈັດການໃນລະດັບທີ່ດີກວ່າເກົ່າໃນການເຮັດໃຫ້ຫຍຸ້ງຍາກ. ທ່ອນໄມ້ຂໍ້ມູນຖືກອອກແບບມາເພື່ອຫົດຕົວແລະເຕີບໃຫຍ່ໃນການເຄື່ອນໄຫວແບບເຄື່ອນໄຫວ.

ແຕ່ວ່າມັນຈະມີຈຸດເດັ່ນຂອງການຮັກສາຕາຕະລາງທີ່ຢູ່ຂອງຖັງໃນການມີສຽງດັງໃນເວລາທີ່ມີການເຕີບໃຫຍ່ຂອງຖານຂໍ້ມູນ.

ຕ້ອງການ ສຳ ລັບການດຶງເອົາຂໍ້ມູນໃນຊ່ວງລະດັບ - ນັ້ນ ໝາຍ ຄວາມວ່າເມື່ອມີການດຶງເອົາຂໍ້ມູນ ສຳ ລັບຂອບເຂດສະເພາະ, ວິທີນີ້ ເໝາະ ສົມທີ່ສຸດ. ວິທີການນີ້ ເໝາະ ສົມທີ່ຈະດຶງເອົາບັນທຶກສະເພາະໂດຍອີງໃສ່ປຸ່ມຄົ້ນຫາ. ແຕ່ມັນຈະບໍ່ປະຕິບັດໄດ້ດີກວ່າຖ້າຟັງຊັນ hash ບໍ່ຢູ່ໃນລະຫັດຄົ້ນຫາ.