Hacker News

ស្រទាប់ឃ្លាំងសម្ងាត់បីរវាង Select និង Disk

ស្រទាប់ឃ្លាំងសម្ងាត់បីរវាង Select និង Disk ការរុករកនេះបែងចែកជាបី ដោយពិនិត្យមើលសារៈសំខាន់ និងផលប៉ះពាល់សក្តានុពលរបស់វា។ គោលគំនិតស្នូលគ្របដណ្តប់ ខ្លឹមសារនេះស្វែងយល់៖ គោលការណ៍ និងទ្រឹស្តីជាមូលដ្ឋាន ការអនុវត្ត...

1 min read Via frn.sh

Mewayz Team

Editorial Team

Hacker News

នៅពេលដែលកម្មវិធីរបស់អ្នកដំណើរការសេចក្តីថ្លែងការណ៍ SELECT សំណួរនោះស្ទើរតែមិនដែលប៉ះថាសបង្វិល ឬសូម្បីតែកន្លែងផ្ទុកទិន្នន័យឆៅ — វាឆ្លងកាត់ស្រទាប់ឃ្លាំងសម្ងាត់បីផ្សេងគ្នា ដែលកំណត់ដោយស្ងៀមស្ងាត់ថាតើការឆ្លើយតបរបស់អ្នកមកដល់ក្នុងមីក្រូវិនាទី ឬមីលីវិនាទី។ ការយល់ដឹងអំពីស្រទាប់ទាំងនេះគឺជាភាពខុសគ្នារវាងវេទិកាអាជីវកម្មដែលធ្វើមាត្រដ្ឋានដោយមិនចាំបាច់ប្រឹងប្រែង និងមួយដែលដាក់នៅក្រោមបន្ទុកជាក់ស្តែង។

តើមានអ្វីកើតឡើងនៅពេលដែលសំណួរ SELECT ទុកពាក្យសុំរបស់អ្នក?

ពេលដែលកម្មវិធីរបស់អ្នកផ្ញើសំណួរ SELECT វាចូលទៅក្នុងបំពង់អ្នកអភិវឌ្ឍន៍ភាគច្រើនមិនដែលពិនិត្យទេ។ ម៉ាស៊ីនមូលដ្ឋានទិន្នន័យស្ទាក់ចាប់សំណើមុនពេល I/O ណាមួយកើតឡើង ដោយញែក SQL ទៅក្នុងផែនការប្រតិបត្តិផ្ទៃក្នុង ហើយពិគ្រោះជាមួយខ្សែការពារដំបូងរបស់វាភ្លាមៗ៖ ឃ្លាំងសម្ងាត់លទ្ធផលសំណួរ។ ប្រសិនបើសំណួរដែលដូចគ្នាបេះបិទជាមួយនឹងប៉ារ៉ាម៉ែត្រដូចគ្នាបេះបិទត្រូវបានប្រតិបត្តិនាពេលថ្មីៗនេះ ម៉ាស៊ីនអាចត្រឡប់លទ្ធផលដែលបានកំណត់ក្នុងឃ្លាំងសម្ងាត់ដោយមិនប៉ះទំព័រតែមួយនៃទិន្នន័យ។ ពេលខ្លះវាត្រូវបានគេហៅថា ឃ្លាំងសម្ងាត់សំណួរ ឬឃ្លាំងសម្ងាត់លទ្ធផល ហើយនៅលើបន្ទុកការងារដែលអានខ្ពស់ និងសរសេរទាប ដូចជាផ្ទាំងគ្រប់គ្រងការវិភាគ និងម៉ូឌុលរាយការណ៍ — វាអាចលុបបំបាត់ការអានថាសភាគច្រើនទាំងស្រុង។

ការយល់ដឹងសំខាន់នៅទីនេះគឺថាឃ្លាំងសម្ងាត់សំណួរមានភាពរសើបខ្លាំងចំពោះការផ្លាស់ប្តូរទិន្នន័យ។ រាល់ INSERT, UPDATE, ឬ DELETE ប្រឆាំងនឹងតារាងខាងក្រោម ធ្វើឱ្យលទ្ធផលដែលពាក់ព័ន្ធក្នុងឃ្លាំងសម្ងាត់មិនត្រឹមត្រូវ។ នេះ​ជា​មូលហេតុ​ដែល​ប្រព័ន្ធ​ប្រតិបត្តិការ​សរសេរ​ធ្ងន់ៗ​ច្រើន​តែ​បិទ​ឃ្លាំង​សម្ងាត់​សំណួរ​ទាំង​ស្រុង ហើយ​ពឹង​ផ្អែក​លើ​ស្រទាប់​ជ្រៅ​ជំនួស​វិញ។

តើអ្វីជា Buffer Pool ហើយហេតុអ្វីបានជាវាសំខាន់ជាងអ្នកគិត?

ស្រទាប់ឃ្លាំងសម្ងាត់ទីពីរ — ហើយ​សំខាន់​បំផុត​ក្នុង​ប្រព័ន្ធ​ផលិតកម្ម — គឺ​ជា បណ្តុំ​បណ្ដោះអាសន្ន (ហៅថា​បណ្តុំ​បណ្ដោះអាសន្ន​ដែល​បាន​ចែករំលែក​នៅក្នុង PostgreSQL ដែលជា​បណ្តុំ​បណ្ដោះអាសន្ន InnoDB នៅក្នុង MySQL)។ នេះគឺជាតំបន់នៃ RAM ដែលម៉ាស៊ីនមូលដ្ឋានទិន្នន័យប្រើដើម្បីរក្សាទំព័រទិន្នន័យដែលបានចូលប្រើថ្មីៗនេះ។ នៅពេលដែលសំណួរមិនអាចត្រូវបានបម្រើពីឃ្លាំងសម្ងាត់លទ្ធផល ម៉ាស៊ីនពិនិត្យមើលថាតើទំព័រទិន្នន័យដែលត្រូវការមានរួចហើយនៅក្នុងបណ្តុំបណ្តុំមុនមុនពេលចេញការអានថាសណាមួយ។

បណ្តុំបណ្តុំដំណើរការលើគោលការណ៍នៃទីតាំងបណ្តោះអាសន្ន និងលំហ៖ ទិន្នន័យដែលបានចូលប្រើនាពេលថ្មីៗនេះទំនងជាត្រូវបានចូលប្រើម្តងទៀត ហើយទិន្នន័យដែលរក្សាទុកនៅជិតទិន្នន័យដែលបានចូលប្រើទំនងជានឹងត្រូវបានចូលប្រើក្នុងពេលឆាប់ៗនេះ។ អ្នកគ្រប់គ្រងមូលដ្ឋានទិន្នន័យកំណត់ទំហំបណ្តុំបណ្តុំជាការសម្រេចចិត្តក្នុងការកំណត់រចនាសម្ព័ន្ធដែលមានអានុភាពខ្ពស់បំផុតដែលពួកគេធ្វើ។ បណ្តុំបណ្តុំដែលតូចពេកបណ្តាលឱ្យមានការបណ្តេញចេញទំព័រថេរ ដែលបង្កើតបាតុភូតមួយហៅថា thrashing ដែលប្រព័ន្ធចំណាយពេលច្រើនក្នុងការគ្រប់គ្រងការខកខានឃ្លាំងសម្ងាត់ជាជាងការប្រតិបត្តិសំណួរ។

Key Insight៖ នៅក្នុងបន្ទុកការងារ OLTP ភាគច្រើន បណ្តុំសតិបណ្ដោះអាសន្នដែលមានទំហំល្អមានន័យថា 95–99% នៃការអានទិន្នន័យទាំងអស់ត្រូវបានបម្រើពី RAM ។ សំណុំការងារ — សំណុំរងនៃទិន្នន័យរបស់អ្នកដែលសំណួរពិតជាប៉ះញឹកញាប់ — ជាញឹកញាប់តូចជាងទំហំមូលដ្ឋានទិន្នន័យសរុបឆ្ងាយណាស់។ ការកំណត់ទំហំបណ្តុំបណ្តុំរបស់អ្នកឱ្យសមនឹងសំណុំការងាររបស់អ្នក មិនមែនសំណុំទិន្នន័យទាំងមូលរបស់អ្នកទេ គឺជាសកម្មភាពលៃតម្រូវការត្រឡប់មកវិញខ្ពស់បំផុតតែមួយគត់ដែលអ្នកអាចធ្វើ។

តើឃ្លាំងសម្ងាត់ប្រព័ន្ធប្រតិបត្តិការបំពេញចន្លោះរវាង RAM និងថាសដោយរបៀបណា?

សូម្បីតែនៅពេលដែលបាត់បណ្តុំសតិបណ្ដោះអាសន្នរបស់មូលដ្ឋានទិន្នន័យក៏ដោយ ក៏សំណួរមិនទាន់កំណត់គោលដៅសម្រាប់ការអានថាសពិតនៅឡើយ។ ប្រព័ន្ធប្រតិបត្តិការរក្សា ឃ្លាំងសម្ងាត់ទំព័រ (ហៅផងដែរថាឃ្លាំងសម្ងាត់ប្រព័ន្ធឯកសារ) ដែលជាតំបន់នៃ RAM ដែលគ្រប់គ្រងដោយខឺណែល ដែលផ្តល់សតិបណ្ដោះអាសន្នអាន និងសរសេរដើម្បីទប់ស្កាត់ឧបករណ៍។ នៅពេលដែលម៉ាស៊ីនមូលដ្ឋានទិន្នន័យស្នើសុំទំព័រដែលអវត្តមានពីបណ្តុំសតិបណ្ដោះអាសន្នរបស់វា ខឺណែល OS ពិនិត្យមើលឃ្លាំងសម្ងាត់ទំព័ររបស់វា មុនពេលចេញពាក្យបញ្ជា I/O ជាក់ស្តែងទៅឧបករណ៍បញ្ជាផ្ទុក។

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

ស្រទាប់ទីបីនេះភាគច្រើនមើលមិនឃើញសម្រាប់អ្នកអភិវឌ្ឍន៍កម្មវិធី ប៉ុន្តែមានសារៈសំខាន់យ៉ាងជ្រាលជ្រៅនៅលើប្រព័ន្ធដែលបណ្តុំបណ្តុំមូលដ្ឋានទិន្នន័យស្ថិតនៅក្រោមការផ្តល់។ ឃ្លាំងសម្ងាត់ទំព័រប្រព័ន្ធប្រតិបត្តិការត្រូវបានចែករំលែកនៅទូទាំងដំណើរការទាំងអស់ ដូច្នេះវាប្រកួតប្រជែងជាមួយម៉ាស៊ីនមេកម្មវិធីរបស់អ្នក ម៉ាស៊ីនមេគេហទំព័រ និងកម្មវិធីផ្សេងទៀតដែលដំណើរការលើម៉ាស៊ីនតែមួយ។ នៅលើម៉ាស៊ីនមេមូលដ្ឋានទិន្នន័យដែលខិតខំប្រឹងប្រែង ការប្រកួតប្រជែងនេះគឺតិចតួចបំផុត ហើយឃ្លាំងសម្ងាត់ OS ផ្តល់នូវសតិបណ្ដោះអាសន្នទីពីរដ៏មានអត្ថន័យ។ នៅលើម៉ាស៊ីន ឬកុងតឺន័រដែលបានចែករំលែកដែលមានដែនកំណត់អង្គចងចាំតឹង ឃ្លាំងសម្ងាត់ OS ជាញឹកញាប់តូចពេកមិនអាចជួយបាន។

តើស្រទាប់ឃ្លាំងសម្ងាត់មួយណាដែលទទួលខុសត្រូវចំពោះការឈ្នះច្រើនបំផុតក្នុងការអនុវត្ត?

នៅក្នុងប្រព័ន្ធផលិតកម្មក្នុងពិភពពិត បណ្តុំសតិបណ្ដោះអាសន្នគ្រប់គ្រងលទ្ធផលប្រតិបត្តិការដោយរឹមធំទូលាយ។ នេះ​ជា​មូលហេតុ​ដែល​ស្រទាប់​នីមួយៗ​រួម​ចំណែក​ខុស​គ្នា​ក្នុង​ករណី​ប្រើប្រាស់៖

  • ឃ្លាំងសម្ងាត់លទ្ធផលសំណួរ៖ អត្ថប្រយោជន៍ខ្ពស់បំផុតលើសំណុំទិន្នន័យដែលអានខ្លាំង ដែលភាគច្រើនជាសំណុំទិន្នន័យឋិតិវន្ត — ការរាយការណ៍សំណួរ ផ្ទាំងគ្រប់គ្រងឃ្លាំងសម្ងាត់ ចំណុចបញ្ចប់ខ្លឹមសារសាធារណៈ។ គ្មានប្រយោជន៍នៅលើតារាងសរសេរធ្ងន់។
  • ឃ្លាំងផ្ទុកទិន្នន័យមូលដ្ឋាន៖ សេះធ្វើការជាសកល។ រាល់ម៉ាស៊ីនមេមូលដ្ឋានទិន្នន័យផលិតកម្មគួរតែត្រូវបានកែសម្រួលនៅទីនេះជាមុនសិន។ គ្រប់គ្រងទាំងការចូលដំណើរការដោយចៃដន្យ និងតាមលំដាប់លំដោយប្រកបដោយប្រសិទ្ធភាព។
  • ឃ្លាំងសម្ងាត់ទំព័រប្រព័ន្ធប្រតិបត្តិការ៖ ផ្តល់សំណាញ់សុវត្ថិភាព នៅពេលដែលបណ្តុំបណ្តុំរងមានទំហំតូច។ ក៏ជួយយ៉ាងសំខាន់ផងដែរ ក្នុងអំឡុងពេលស្កេនតាមលំដាប់លំដោយនៃតារាងធំ ដែលនឹងបណ្តេញទំព័រក្តៅចេញពីបណ្តុំបណ្តុំ។
  • ឃ្លាំងសម្ងាត់ឧបករណ៍បញ្ជា (ស្រទាប់ផ្នែករឹង)៖ ស្រទាប់ទីបួនដែលជារឿយៗមើលរំលង — NVMe SSDs និងឧបករណ៍បញ្ជា RAID រក្សាឃ្លាំងសម្ងាត់សរសេរនៅលើក្តារជាមួយនឹងការបម្រុងទុកថ្ម ឬឧបករណ៍ផ្ទុកថាមពល។ វាការពារភាពធន់ដោយមិនលះបង់ការសរសេរឆ្លងកាត់ដោយចំណាយនៃភាពយឺតយ៉ាវ fsync ។
  • ឃ្លាំងសម្ងាត់ស្រទាប់កម្មវិធី (Redis, Memcached)៖ ស្ថិតនៅពីលើមូលដ្ឋានទិន្នន័យទាំងស្រុង រក្សាទុកនូវលទ្ធផលសំណួរជាសៀរៀល ឬវត្ថុដែលបានគណនា ដើម្បីជៀសវាងការវាយលុកលើមូលដ្ឋានទិន្នន័យទាំងអស់ — ល្អបំផុតសម្រាប់វេទិកា SaaS ដែលមានអ្នកជួលច្រើនដែលបម្រើអ្នកប្រើប្រាស់ដំណាលគ្នារាប់ពាន់នាក់។

តើវេទិកាអាជីវកម្មទំនើបអាចប្រើប្រាស់ស្ថាបត្យកម្មឃ្លាំងសម្ងាត់សម្រាប់ភាពអាចជឿជាក់បានតាមមាត្រដ្ឋានយ៉ាងដូចម្តេច?

សម្រាប់អាជីវកម្មដែលដំណើរការលើម៉ូឌុលមុខងារជាច្រើន — CRM ការគ្រប់គ្រងគម្រោង ពាណិជ្ជកម្មអេឡិចត្រូនិក ការវិភាគ — ស្ថាបត្យកម្មឃ្លាំងសម្ងាត់កំណត់ដោយផ្ទាល់នូវការឆ្លើយតបរបស់វេទិកានៅពេលដែលក្រុមរីកចម្រើន។ វេទិកាដែលបានបង្កើតឡើងនៅលើយុទ្ធសាស្ត្រឃ្លាំងសម្ងាត់ដែលមានស្រទាប់ល្អអាចបម្រើអ្នកប្រើប្រាស់ដំណាលគ្នារាប់ម៉ឺននាក់ដោយមិនចាំបាច់ចំណាយហេដ្ឋារចនាសម្ព័ន្ធសមាមាត្រ។ គន្លឹះគឺការរចនាលំនាំការចូលប្រើទិន្នន័យដែលគោរពព្រំដែនឃ្លាំងសម្ងាត់៖ ការរក្សាទិន្នន័យក្តៅតូច និងលំនាំចូលប្រើដែលអាចព្យាករណ៍បាន ដោយប្រើការចម្លងការអានដើម្បីចែកចាយការផ្ទុកបណ្តុំបណ្តោះអាសន្ន និងកំណត់ទីតាំងឃ្លាំងសម្ងាត់ស្រទាប់កម្មវិធីដូចជា Redis នៅពីមុខមូលដ្ឋានទិន្នន័យសម្រាប់ចំណុចបញ្ចប់ដែលបម្រើទិន្នន័យដូចគ្នាបេះបិទទៅអ្នកប្រើប្រាស់ច្រើននាក់ក្នុងពេលដំណាលគ្នា។

Mewayz ត្រូវបានស្ថាបត្យករដោយគិតគូរពីទស្សនវិជ្ជានេះ។ ជាមួយនឹងម៉ូឌុលអាជីវកម្មរួមបញ្ចូលគ្នាចំនួន 207 ដែលផ្តល់ថាមពលដល់អ្នកប្រើប្រាស់ជាង 138,000 នាក់ ស្រទាប់ទិន្នន័យរបស់វេទិកាត្រូវបានរចនាឡើងដើម្បីឱ្យការអានភាគច្រើនលើសលប់ត្រូវបានបម្រើពីឃ្លាំងសម្ងាត់ ដោយរក្សាពេលវេលាឆ្លើយតបបានលឿន ហើយតម្លៃហេដ្ឋារចនាសម្ព័ន្ធអាចព្យាករណ៍បានថាតើអ្នកកំពុងដំណើរការលើគម្រោងចាប់ផ្តើម $19/ខែ ឬកម្រិតអាជីព $49/ខែ។

សំណួរដែលគេសួរញឹកញាប់

តើ​ការ​បិទ​ឃ្លាំង​សម្ងាត់​សំណួរ​តែង​តែ​ធ្វើ​ឲ្យ​ដំណើរការ​មូលដ្ឋាន​ទិន្នន័យ​ប្រសើរ​ឡើង​ឬ?

មិនតែងតែទេ ប៉ុន្តែសម្រាប់បន្ទុកការងារធ្ងន់ៗ វាជាធម្មតាធ្វើ។ ឃ្លាំងសម្ងាត់សំណួរតម្រូវឱ្យមាន mutex សកលដើម្បីរក្សាភាពស៊ីសង្វាក់គ្នា ដែលក្លាយជាឧបសគ្គនៅក្រោមការស្របគ្នាខ្ពស់។ MySQL 8.0 បានលុបឃ្លាំងសម្ងាត់សំណួរទាំងស្រុងសម្រាប់ហេតុផលនេះ។ PostgreSQL មិនដែលអនុវត្តឃ្លាំងសម្ងាត់សំណួរដែលភ្ជាប់មកជាមួយទេ ដោយពឹងផ្អែកលើបណ្តុំបណ្តោះអាសន្ន និងឃ្លាំងសម្ងាត់ស្រទាប់កម្មវិធី។ ប្រសិនបើសមាមាត្រអានទៅសរសេររបស់អ្នកខ្ពស់ ហើយសំណួររបស់អ្នកគឺច្រំដែលខ្លាំង ឃ្លាំងសម្ងាត់សំណួរអាចផ្តល់ផលចំណេញពិតប្រាកដ - បើមិនដូច្នេះទេ សូមវិនិយោគលើការកែសម្រួលនោះនៅក្នុងបណ្តុំបណ្តោះអាសន្ន។

តើខ្ញុំអាចដឹងដោយរបៀបណាថា buffer pool របស់ខ្ញុំមានទំហំត្រឹមត្រូវ?

តាមដានសមាមាត្រនៃបណ្តុំបណ្តុំបណ្តោះអាសន្នរបស់អ្នក៖ ភាគរយនៃសំណើទំព័រដែលបានបម្រើពីក្រុមធៀបនឹងអ្នកដែលត្រូវការអានថាស។ សមាមាត្របុកក្រោម 95% លើបន្ទុកការងារ OLTP គឺជាសញ្ញាមួយដើម្បីបង្កើនទំហំអាង។ នៅក្នុង MySQL, query SHOW ENGINE INNODB STATUS ហើយមើលលើ buffer pool hit rate។ នៅក្នុង PostgreSQL ទិដ្ឋភាព pg_statio_user_tables បង្ហាញប្លុក heap ដែលអានពីថាសធៀបនឹងការបម្រើពីបណ្តុំបណ្តុំ។ មានបំណងរក្សាសំណុំការងារទាំងមូលរបស់អ្នក — មិនមែនជាសំណុំទិន្នន័យពេញលេញរបស់អ្នក — ស្នាក់នៅក្នុង RAM ។

តើទំនាក់ទំនងរវាងស្រទាប់ឃ្លាំងសម្ងាត់ និងភាពជឿជាក់ SaaS ច្រើនអ្នកជួលគឺជាអ្វី?

នៅក្នុង SaaS ពហុភតិកៈ ស្រទាប់ឃ្លាំងសម្ងាត់ការពារបញ្ហា "អ្នកជិតខាងដែលរំខាន" ដែលបន្ទុកសំណួរធ្ងន់ៗរបស់អ្នកជួលម្នាក់ធ្វើឱ្យខូចដំណើរការសម្រាប់អ្នកជួលផ្សេងទៀតទាំងអស់។ ឃ្លាំងសម្ងាត់កម្មវិធីដឹងអ្នកជួលជាមួយការអសកម្មដែលមានមូលដ្ឋានលើ TTL រក្សាទិន្នន័យក្តៅសម្រាប់ភតិកៈនៅក្នុង Redis ដោយកាត់បន្ថយសម្ពាធអាងស្តុកទុកយ៉ាងច្រើនពីគណនីធំ។ ការបូកបញ្ចូលគ្នានៃការតភ្ជាប់កម្រិតមូលដ្ឋានទិន្នន័យរួមបញ្ចូលគ្នាជាមួយបណ្តុំបណ្តោះអាសន្នដ៏កក់ក្តៅ ធានាថាសកម្មភាពផ្ទុះចេញពីគណនីតែមួយមិនលុបទំព័រដែលបានចែករំលែកចេញពីឃ្លាំងសម្ងាត់ និងបណ្តាលឱ្យមានការបង្កើនភាពយឺតយ៉ាវនៅទូទាំងវេទិកា។

<ម៉ោង>

ស្រទាប់ឃ្លាំងសម្ងាត់មិនមែនជាមូលដ្ឋានទិន្នន័យដែលមិនសូវសំខាន់នោះទេ ពួកវាជាគ្រឹះស្ថាបត្យកម្មដែលបំបែកវេទិកាដែលនៅមានល្បឿនលឿនពីទំហំដែលត្រូវការការពន្លត់អគ្គីភ័យជាប្រចាំ។ ប្រសិនបើអ្នកកំពុងសាងសង់ ឬដំណើរការអាជីវកម្មដែលត្រូវការវេទិកាដែលប្រសើរឡើងសម្រាប់ការពិតទាំងនេះ រុករក Mewayz នៅ app.mewayz.com — 207 ម៉ូឌុល ដែលជាវេទិការួមគ្នាមួយដែលត្រូវបានបង្កើតឡើងដើម្បីអនុវត្តដោយភាពជឿជាក់ពីអ្នកប្រើប្រាស់ដំបូងរបស់អ្នករហូតដល់មួយរយពាន់របស់អ្នក។

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Related Guide

HR Management Guide →

Manage your team effectively: employee profiles, leave management, payroll, and performance reviews.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime