Skip to content
GitHub

မှန်ကန်သော Database ကို ရွေးချယ်ခြင်း

Polyglot Persistence: လုပ်ငန်းအလိုက် အသင့်တော်ဆုံး Tool ကို သုံးစွဲခြင်း

Section titled “Polyglot Persistence: လုပ်ငန်းအလိုက် အသင့်တော်ဆုံး Tool ကို သုံးစွဲခြင်း”

Monolith တည်ဆောက်ပုံမှာဆိုရင်၊ သင်က များသောအားဖြင့် အရာအားလုံးအတွက် Database အကြီးကြီးတစ်ခုတည်းကိုပဲ ရွေးချယ်လေ့ရှိတယ်။ Microservices လောကမှာတော့ သင်က Polyglot Persistence ကို သုံးနိုင်ပါတယ် — ဒါက Service တစ်ခုချင်းစီရဲ့ သီးသန့်လိုအပ်ချက်အပေါ်မူတည်ပြီး၊ အဲဒီ Service အတွက် အကောင်းဆုံးအလုပ်လုပ်မယ့် မတူညီတဲ့ Database အမျိုးအစားတွေကို ရွေးချယ်အသုံးပြုတဲ့ သဘောတရားဖြစ်ပါတယ်။

SQL (Relational) Databases တွေကို ဘယ်အချိန်မှာ သုံးမလဲ

Section titled “SQL (Relational) Databases တွေကို ဘယ်အချိန်မှာ သုံးမလဲ”

(ဥပမာများ: PostgreSQL, MySQL, SQL Server)

  • အသင့်တော်ဆုံးအခြေအနေများ -

    • ဖွဲ့စည်းပုံသေချာပြီး၊ ကြိုတင်ခန့်မှန်းနိုင်တဲ့ Data ပုံစံတွေအတွက် (User Profile လိုမျိုး)။

    • Data တွေ အမြဲတမ်းမှန်ကန်နေဖို့လိုတဲ့အခါနဲ့ သမားရိုးကျ ACID Transaction တွေလိုတဲ့အခါ။

    • Data တွေကြားမှာ ဆက်စပ်မှုတွေရှုပ်ထွေးပြီး Query လုပ်ရတာများတဲ့အခါ။

  • ဥပမာ Service - UserService သို့မဟုတ် AccountingService

NoSQL (Non-Relational) Databases တွေကို ဘယ်အချိန်မှာ သုံးမလဲ

Section titled “NoSQL (Non-Relational) Databases တွေကို ဘယ်အချိန်မှာ သုံးမလဲ”
  • Document Databases (ဥပမာ - MongoDB, Couchbase)

    • အသင့်တော်ဆုံး - ဖွဲ့စည်းပုံအတိအကျမရှိတဲ့၊ ပြောင်းလွယ်ပြင်လွယ်ရှိတဲ့ Data တွေအတွက်။ Item တစ်ခုချင်းစီမှာ မတူညီတဲ့ Structure တွေ ရှိနိုင်ပါတယ်။

    • ဥပမာ Service - ProductCatalogService တစ်ခုမှာ “စာအုပ်” Product တစ်ခုရဲ့ အချက်အလက်တွေက “တီရှပ်” Product တစ်ခုရဲ့ အချက်အလက်တွေနဲ့ အများကြီးကွာခြားနိုင်တာမျိုး။

  • Key-Value Stores (ဥပမာ - Redis, Amazon DynamoDB)

    • အသင့်တော်ဆုံး - Key တစ်ခုကိုသုံးပြီး ရိုးရှင်းတဲ့ Data ကို အလွန်မြန်မြန် ထုတ်/သွင်း လုပ်ချင်တဲ့အခါ။

    • ဥပမာ Service - User Login Session တွေကို သိမ်းဆည်းဖို့ SessionService သို့မဟုတ် CachingService တစ်ခု။

  • Graph Databases (ဥပမာများ: Neo4j, Amazon Neptune)

    • အသင့်တော်ဆုံး - Data တွေကြားက “ဆက်စပ်မှု (Relationships)” တွေက အဓိကအရေးအကြီးဆုံးဖြစ်နေတဲ့အခါ။

    • ဥပမာ Service - SocialNetworkService (“သူငယ်ချင်း” နှင့် “follows” ဆက်စပ်မှုတွေကို စီမံခန့်ခွဲခြင်း) သို့မဟုတ် RecommendationEngine (“ဒီပစ္စည်းဝယ်တဲ့သူတွေက ဟိုပစ္စည်းကိုလည်း ဝယ်ကြတယ်” ဆိုတာမျိုး)။

Chosing Databases