제이의 블로그

การสร้างแบบจำลองข้อมูลเชิงกายภาพ

สร้าง: 2024-04-09

สร้าง: 2024-04-09 23:01

หากการสร้างแบบจำลองข้อมูลเชิงตรรกะ (Logical Data Modeling) เป็นการสร้างตารางในอุดมคติที่เหมาะสมกับฐานข้อมูลแบบสัมพันธ์ การสร้างแบบจำลองข้อมูลเชิงกายภาพ (Physical Data Modeling) จะรวมถึงการสร้างตารางในอุดมคติให้เป็นตารางที่ใช้งานจริง พร้อมทั้งพิจารณาถึงการวางแผนการใช้พื้นที่จัดเก็บข้อมูลอย่างมีประสิทธิภาพ การออกแบบการแบ่งพาร์ติชันของออบเจ็กต์ และการออกแบบดัชนีที่ดีที่สุด เพื่อเน้นการปรับปรุงประสิทธิภาพและการเพิ่มประสิทธิภาพ

วิธีการค้นหาแบบสอบถามที่ช้า (Slow Query) ซึ่งเป็นสาเหตุของปัญหาคอขวดในระหว่างการดำเนินงานของบริการจะแตกต่างกันไปตามประเภทของ DBMS และแบบสอบถามที่ช้า (Slow Query)จำเป็นต้องค้นหาโดยใช้เป็นคำหลักในการค้นหา

สิ่งที่ควรพิจารณาเพื่อประสิทธิภาพ

การค้นหาแบบสอบถามที่ช้า (Slow Query)

  • แบบสอบถามที่ช้า (Slow Query) หมายถึงแบบสอบถามที่ DBMS ไม่สามารถดำเนินการได้ภายในเวลาที่กำหนดเมื่อได้รับคำขอ
  • ค้นหาแบบสอบถามที่ช้า (Slow Query) ที่ทำให้เกิดปัญหาคอขวด เพื่อระบุสาเหตุของปัญหาและแก้ไข

ดัชนี (Index)

  • ดัชนีช่วยเพิ่มประสิทธิภาพในการอ่านข้อมูลของแถวอย่างมาก
  • แต่ทำให้ประสิทธิภาพในการเขียนลดลงและใช้พื้นที่จัดเก็บข้อมูลมากขึ้น


แคช (Cache)

  • วิธีการลดภาระของฐานข้อมูลในระดับแอปพลิเคชัน
  • เป็นวิธีการจัดเก็บคำตอบของคำขอที่มีอินพุตเหมือนกันไว้ในพื้นที่จัดเก็บข้อมูลและส่งคืนคำตอบนั้น


หากวิธีการข้างต้นไม่สามารถแก้ไขปัญหาประสิทธิภาพได้ จะดำเนินการที่เรียกว่าการทำให้เป็นปกติย้อนกลับ (Denormalization) หรือการทำให้ไม่เป็นปกติ (Denormalization)

นั่นคือการแก้ไขโครงสร้างของตาราง

การแลกเปลี่ยนของการทำให้เป็นปกติ

การทำให้เป็นปกติ (Normalization) เหมือนกับการยอมแลกประสิทธิภาพในการอ่านเพื่อความสะดวกในการเขียน เนื่องจากเมื่อทำการทำให้เป็นปกติ (Normalization) แล้วจำเป็นต้องเขียนแบบสอบถามเพื่อเชื่อมต่อข้อมูลในตารางที่ถูกแบ่งออกเป็นหลายส่วน

อย่างไรก็ตาม การทำให้เป็นปกติ (Normalization) ไม่ได้ทำให้ประสิทธิภาพลดลงเสมอไป ดังนั้นก่อนที่จะดำเนินการทำให้เป็นปกติย้อนกลับ (Denormalization) จำเป็นต้องวิเคราะห์และตรวจสอบปัญหาอย่างถูกต้อง

ลิงก์ด้านล่างเป็นบทความที่ดีที่กล่าวถึงการทำให้เป็นปกติย้อนกลับ (Denormalization)ซึ่งเราจะกล่าวถึงต่อไป

การทำให้เป็นปกติย้อนกลับ การทำให้ไม่เป็นปกติ (Denormalization)

สิ่งแรกที่ควรทราบคือ การทำให้เป็นปกติย้อนกลับ (Denormalization) ควรดำเนินการหลังจากทำการทำให้เป็นปกติ (Normalization) แล้ว การมีตารางที่ไม่เป็นปกติตั้งแต่แรกนั้นไม่ใช่เรื่องที่ดี

เนื่องจากในตอนนี้ยังไม่จำเป็นต้องใช้ความรู้ดังกล่าว จึงขอให้ทราบไว้เพียงเท่านั้น

เทคนิคการทำให้ตารางเป็นปกติย้อนกลับ

การสร้างแบบจำลองข้อมูลเชิงกายภาพ

ที่มา - DataOnAir - การทำให้ไม่เป็นปกติและประสิทธิภาพ

การทำให้คอลัมน์เป็นปกติย้อนกลับ

การสร้างแบบจำลองข้อมูลเชิงกายภาพ

ที่มา DataOnAir - การทำให้ไม่เป็นปกติและประสิทธิภาพ

การทำให้ความสัมพันธ์เป็นปกติย้อนกลับ

การสร้างแบบจำลองข้อมูลเชิงกายภาพ

ที่มา - DataOnAir - การทำให้ไม่เป็นปกติและประสิทธิภาพ

ความคิดเห็น0

[Java] คอลเล็กชันที่ซิงโครไนซ์ เทียบกับ คอลเล็กชันแบบพร้อมใช้งานบทความนี้จะอธิบายถึงความแตกต่างระหว่างคอลเล็กชันที่ซิงโครไนซ์ (Vector, Hashtable) และคอลเล็กชันแบบพร้อมใช้งาน (ConcurrentHashMap เป็นต้น) ใน Java พร้อมทั้งอธิบายประเภทของ Concurrent Collection ช่วยแก้ไขปัญหาการทำงานพร้อมกันและปรับปรุงประสิทธิภาพ
제이온
제이온
제이온
제이온

April 25, 2024

[สำหรับผู้ไม่ใช่ผู้เชี่ยวชาญ ด้านการพัฒนาซอฟต์แวร์ เพื่อความอยู่รอด] 14. สรุปเนื้อหาสัมภาษณ์ทางเทคนิคที่ผู้พัฒนาซอฟต์แวร์มือใหม่ถามบ่อยสรุปคำถามทางเทคนิคที่มักถามในการสัมภาษณ์งานผู้พัฒนาซอฟต์แวร์มือใหม่ (พื้นที่หน่วยความจำ โครงสร้างข้อมูล ฐานข้อมูล ฯลฯ) หวังว่าจะเป็นประโยชน์ในการเตรียมตัวสัมภาษณ์งานด้านการพัฒนา
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

April 3, 2024

[DB] เกณฑ์การตั้งค่าแคชบทความนี้จะแนะนำเกณฑ์การตั้งค่าแคชของฐานข้อมูลและตัวอย่างการใช้งานจริง รวมถึงวิธีการแคชข้อมูลที่อ่านบ่อยและเขียนน้อย โดยเฉพาะอย่างยิ่งการรักษาความใหม่ล่าสุดของข้อมูลผ่านการตั้งค่า TTL
제이온
제이온
제이온
제이온

April 25, 2024

[Effective Java] รายการที่ 6: หลีกเลี่ยงการสร้างออบเจ็กต์ที่ไม่จำเป็นการสร้างออบเจ็กต์ที่ไม่จำเป็นนั้นนำไปสู่การสิ้นเปลืองหน่วยความจำ ดังนั้น สำหรับออบเจ็กต์ เช่น สตริง หรือบูลีน ควรใช้ลิเทอรัลหรือเมธอดจากโรงงานแบบคงที่แทน
제이온
제이온
제이온
제이온

April 28, 2024

[บันทึกการสร้างเว็บไซต์หลายภาษา - วันที่ 41] การตั้งค่า Schema คืออะไร?นี่คือบันทึกวันที่ 41 ของการสร้างเว็บไซต์หลายภาษาโดยใช้ RankMath อธิบายวิธีการตั้งค่า Schema เพื่อจัดโครงสร้างข้อมูลเว็บไซต์และช่วยในการเพิ่มประสิทธิภาพการค้นหา (SEO) อย่างละเอียด
aghkuh1
aghkuh1
aghkuh1
aghkuh1

February 6, 2025

29 พ.ย. 2567 ข่าวล่าช้า: สมัคร Replit แบบชำระเงิน / นิสัยการพัฒนาซอฟต์แวร์ที่ดีบทความบล็อกที่เขียนเมื่อวันที่ 29 พฤศจิกายน พ.ศ. 2567 นี้จะแบ่งปันรีวิวการสมัครสมาชิกแบบชำระเงินของ Replit และแนะนำนิสัยการพัฒนาซอฟต์แวร์ที่ดี 10 ประการ ครอบคลุมกลยุทธ์การเขียนโค้ดและการปรับโครงสร้างที่มีประสิทธิภาพ รวมถึงความสำคัญของการทดสอบ
Charles Lee
Charles Lee
Charles Lee
Charles Lee

November 29, 2024