แนวทางปฏิบัติที่ดีที่สุดสำหรับการออกแบบฐานข้อมูลสำหรับแอปประสิทธิภาพสูง
เผยแพร่แล้ว: 2021-07-19เพื่อให้แอปพลิเคชันมีประสิทธิภาพที่ดี คุณต้องมีเซิร์ฟเวอร์แอปพลิเคชันที่มีประสิทธิภาพ แบนด์วิดท์ที่เพียงพอและมีการรับประกัน และงานเขียนโปรแกรมที่ทำได้ดี แต่มีแง่มุมหนึ่งที่ไม่ได้นำมาพิจารณาเสมอ และมักจะส่งผลกระทบอย่างมากต่อประสิทธิภาพของแอปพลิเคชันใดๆ นั่นคือ การออกแบบฐานข้อมูล
ตอนนี้เราจะดูแนวทางปฏิบัติที่ดีที่สุดสำหรับการออกแบบฐานข้อมูลเพื่อให้แน่ใจว่าการเข้าถึงข้อมูลไม่ใช่คอขวดที่ส่งผลเสียต่อประสิทธิภาพของแอปพลิเคชัน
จุดประสงค์ของการออกแบบฐานข้อมูลที่ดีคืออะไร?
นอกเหนือจากการปรับปรุงประสิทธิภาพการเข้าถึงข้อมูลแล้ว การออกแบบที่ดียังมีประโยชน์อื่นๆ เช่น การรักษาความสอดคล้องของข้อมูล ความถูกต้อง และความน่าเชื่อถือ และลดพื้นที่จัดเก็บข้อมูลโดยขจัดความซ้ำซ้อน ข้อดีอีกประการของการออกแบบที่ดีคือฐานข้อมูลใช้และบำรุงรักษาได้ง่ายขึ้น ใครก็ตามที่ต้องจัดการจะต้องดูแผนภาพความสัมพันธ์เอนทิตี (ERD) เพื่อทำความเข้าใจโครงสร้าง
ERDs เป็นเครื่องมือพื้นฐานของการออกแบบฐานข้อมูล สามารถสร้างและแสดงภาพได้ในสามระดับของการออกแบบ: แนวความคิด ตรรกะ และ กายภาพ
การออกแบบแนวความคิดแสดงไดอะแกรมที่สรุปได้มาก โดยมีเพียงองค์ประกอบที่จำเป็นในการยอมรับเกณฑ์กับผู้มีส่วนได้ส่วนเสียของโครงการ ซึ่งไม่จำเป็นต้องเข้าใจรายละเอียดทางเทคนิคของฐานข้อมูล การออกแบบเชิงตรรกะแสดงเอนทิตีและความสัมพันธ์อย่างละเอียดแต่ในลักษณะที่ไม่อิงฐานข้อมูล
มีเครื่องมือมากมายที่คุณสามารถใช้เพื่ออำนวยความสะดวกในการออกแบบฐานข้อมูลจาก ERD ในบรรดาสิ่งที่ดีที่สุด ได้แก่ DbSchema , SqlDBM และ Vertabelo
DbSchema
DbSchema ช่วยให้คุณออกแบบและจัดการฐานข้อมูล SQL, NoSQL หรือ Cloud ได้อย่างชัดเจน เครื่องมือนี้ช่วยให้คุณออกแบบสคีมาบนคอมพิวเตอร์และปรับใช้กับฐานข้อมูลหลาย ๆ ฐานข้อมูล และสร้างเอกสารประกอบในไดอะแกรม HTML5 เขียนข้อความค้นหา และสำรวจข้อมูลด้วยสายตา และอื่นๆ นอกจากนี้ยังมีการซิงโครไนซ์สคีมา การสร้างข้อมูลแบบสุ่ม และการแก้ไขโค้ด SQL ด้วยการเติมข้อความอัตโนมัติ
SQLDBM
SqlDBM เป็นหนึ่งในเครื่องมือออกแบบไดอะแกรมฐานข้อมูลที่ดีที่สุด เพราะมันมีวิธีง่ายๆ ในการออกแบบฐานข้อมูลของคุณในเบราว์เซอร์ใดๆ ไม่จำเป็นต้องใช้กลไกฐานข้อมูลหรือเครื่องมือสร้างแบบจำลองอื่นใด แม้ว่า SqlDBM จะอนุญาตให้คุณนำเข้าสคีมาจากฐานข้อมูลที่มีอยู่ เหมาะอย่างยิ่งสำหรับการทำงานเป็นทีม เนื่องจากช่วยให้คุณสามารถแชร์โครงการออกแบบกับเพื่อนร่วมงานได้
Vertabelo
Vertabelo เป็นเครื่องมือออกแบบฐานข้อมูลภาพออนไลน์ที่ให้คุณออกแบบฐานข้อมูลอย่างมีเหตุผลและได้มาจากสคีมาทางกายภาพโดยอัตโนมัติ มันสามารถย้อนกลับวิศวกรรม สร้างไดอะแกรมจากฐานข้อมูลที่มีอยู่ และควบคุมการเข้าถึงไดอะแกรมโดยแยกสิทธิ์การเข้าถึงให้กับเจ้าของ ผู้แก้ไข และผู้ดู
สุดท้าย การออกแบบทางกายภาพเป็นส่วนที่เพิ่มรายละเอียดที่จำเป็นทั้งหมดให้กับ ERD เพื่อเปลี่ยนเป็นฐานข้อมูลที่ใช้งานได้ใน DBMS เฉพาะ เช่น MySQL, MariaDB, MS SQL Server หรืออื่นๆ มาดูแนวทางปฏิบัติที่ดีที่สุดที่ควรคำนึงถึงเมื่อออกแบบ ERD เพื่อให้ฐานข้อมูลที่เป็นผลลัพธ์ทำงานได้ดีที่สุด
กำหนดประเภทของฐานข้อมูลที่จะออกแบบ
ฐานข้อมูลพื้นฐานสองประเภทมักจะแยกความแตกต่าง: เชิงสัมพันธ์ และ มิติ
ฐานข้อมูลเชิงสัมพันธ์ใช้สำหรับแอปพลิเคชันแบบดั้งเดิมที่ทำธุรกรรมกับข้อมูล กล่าวคือ รับข้อมูลจากฐานข้อมูล ประมวลผล และจัดเก็บผลลัพธ์
ในทางกลับกัน ฐานข้อมูลมิติจะใช้สำหรับการสร้างคลังข้อมูล: ที่เก็บข้อมูลขนาดใหญ่สำหรับการวิเคราะห์ข้อมูลและการทำเหมืองข้อมูลเพื่อให้ได้ข้อมูลเชิงลึก


ขั้นตอนแรกในงานออกแบบฐานข้อมูลคือการเลือกหนึ่งในสองประเภทฐานข้อมูลหลักที่จะใช้งาน: เชิงสัมพันธ์หรือเชิงมิติ สิ่งสำคัญคือต้องมีความชัดเจนก่อนที่คุณจะเริ่มออกแบบ มิฉะนั้น คุณอาจหลงผิดในการออกแบบซึ่งในที่สุดจะนำไปสู่ปัญหามากมาย และจะยาก (หรือเป็นไปไม่ได้) ในการแก้ไข
ใช้อนุสัญญาการตั้งชื่อ
ชื่อที่ใช้ในการออกแบบฐานข้อมูลมีความสำคัญ เนื่องจากเมื่อสร้างอ็อบเจ็กต์ในฐานข้อมูล การเปลี่ยนชื่อของอ็อบเจ็กต์อาจถึงแก่ชีวิตได้ การเปลี่ยนตัวอักษรเพียงตัวเดียวสามารถทำลายการขึ้นต่อกัน ความสัมพันธ์ หรือแม้แต่ระบบทั้งหมดได้
นั่นเป็นเหตุผลว่าทำไมจึงเป็นสิ่งสำคัญในการทำงานกับหลักการตั้งชื่อที่ดี: ชุดของกฎที่ช่วยให้คุณไม่ต้องยุ่งยากในการลองใช้ความเป็นไปได้ต่างๆ กว่า 50 รายการเพื่อค้นหาชื่อของวัตถุที่คุณจำไม่ได้
ไม่มีแนวทางสากลว่าการตั้งชื่อแบบแผนการตั้งชื่อควรเป็นอย่างไรเพื่อทำหน้าที่ของมัน แต่สิ่งสำคัญคือต้องสร้างแบบแผนการตั้งชื่อก่อนที่จะตั้งชื่อวัตถุใดๆ ในฐานข้อมูล และคงไว้ซึ่งแบบแผนนั้นตลอดไป แบบแผนการตั้งชื่อกำหนดแนวทางเช่นว่าจะใช้เครื่องหมายขีดล่างเพื่อแยกคำหรือรวมคำโดยตรง ว่าจะใช้อักษรตัวพิมพ์ใหญ่ทั้งหมดหรือคำที่เป็นตัวพิมพ์ใหญ่ (แบบกรณีอูฐ) ไม่ว่าจะใช้คำพหูพจน์หรือเอกพจน์เพื่อตั้งชื่อวัตถุ เป็นต้น
เริ่มต้นด้วยการออกแบบแนวความคิด จากนั้นจึงออกแบบตามตรรกะ และสุดท้ายคือการออกแบบทางกายภาพ
นั่นคือระเบียบธรรมชาติของสิ่งต่างๆ ในฐานะนักออกแบบ คุณอาจถูกล่อลวงให้เริ่มต้นโดยการสร้างออบเจ็กต์บน DBMS โดยตรงเพื่อข้ามขั้นตอน แต่สิ่งนี้จะป้องกันไม่ให้คุณมีเครื่องมือในการพูดคุยกับผู้มีส่วนได้ส่วนเสียเพื่อให้แน่ใจว่าการออกแบบตรงตามข้อกำหนดทางธุรกิจ
หลังจากการออกแบบแนวความคิด คุณต้องไปที่การออกแบบเชิงตรรกะเพื่อให้มีเอกสารประกอบเพียงพอ เพื่อช่วยให้โปรแกรมเมอร์เข้าใจโครงสร้างฐานข้อมูล จำเป็นอย่างยิ่งที่จะต้องปรับปรุงการออกแบบเชิงตรรกะให้เป็นอิสระจากกลไกฐานข้อมูลที่จะใช้ ด้วยวิธีนี้ หากคุณย้ายฐานข้อมูลไปยังกลไกอื่นในที่สุด การออกแบบเชิงตรรกะจะยังคงมีประโยชน์
ในที่สุด การออกแบบทางกายภาพสามารถสร้างขึ้นโดยโปรแกรมเมอร์เองหรือโดย DBA โดยใช้การออกแบบเชิงตรรกะและเพิ่มรายละเอียดการนำไปใช้ทั้งหมดที่จำเป็นในการปรับใช้บน DBMS เฉพาะ
สร้างและรักษาพจนานุกรมข้อมูล
แม้ว่า ERD จะมีความชัดเจนและสื่อความหมาย คุณควรเพิ่มพจนานุกรมข้อมูลเพื่อให้ชัดเจนยิ่งขึ้น พจนานุกรมข้อมูลรักษาความสอดคล้องและความสอดคล้องในการออกแบบฐานข้อมูล โดยเฉพาะอย่างยิ่งเมื่อจำนวนของอ็อบเจ็กต์ในนั้นเพิ่มขึ้นอย่างมาก
วัตถุประสงค์หลักของพจนานุกรมข้อมูลคือเพื่อรักษาที่เก็บข้อมูลอ้างอิงเดียวเกี่ยวกับเอนทิตีของแบบจำลองข้อมูลและคุณลักษณะ พจนานุกรมข้อมูลควรมีชื่อของเอนทิตีทั้งหมด ชื่อของแอตทริบิวต์ทั้งหมด รูปแบบและประเภทข้อมูล และคำอธิบายโดยย่อของแต่ละรายการ

พจนานุกรมข้อมูลมีคำแนะนำที่ชัดเจนและรัดกุมสำหรับองค์ประกอบทั้งหมดที่ประกอบเป็นฐานข้อมูล การทำเช่นนี้จะหลีกเลี่ยงการสร้างหลายอ็อบเจ็กต์ที่แสดงถึงสิ่งเดียวกัน ซึ่งทำให้ยากต่อการทราบว่าจะใช้ออบเจกต์ใดเมื่อคุณต้องการสอบถามหรืออัปเดตข้อมูล
รักษาเกณฑ์ที่สอดคล้องกันสำหรับคีย์หลัก
การตัดสินใจใช้คีย์ธรรมชาติหรือคีย์ตัวแทนต้องสอดคล้องกันภายในโมเดลข้อมูล หากเอนทิตีในแบบจำลองข้อมูลมีตัวระบุเฉพาะที่สามารถจัดการได้อย่างมีประสิทธิภาพเป็นคีย์หลักของตารางที่เกี่ยวข้อง ไม่จำเป็นต้องสร้างคีย์ตัวแทน
แต่เป็นเรื่องปกติที่เอนทิตีจะถูกระบุด้วยแอตทริบิวต์หลายประเภทที่แตกต่างกัน เช่น วันที่ ตัวเลข และ/หรือสตริงอักขระแบบยาว ซึ่งอาจไม่มีประสิทธิภาพสำหรับการสร้างคีย์หลัก ในกรณีเหล่านี้ จะเป็นการดีกว่าที่จะสร้างคีย์ตัวแทนของประเภทตัวเลขจำนวนเต็ม ซึ่งให้ประสิทธิภาพสูงสุดในการจัดการดัชนี และคีย์ตัวแทนเป็นทางเลือกเดียวหากเอนทิตีไม่มีแอตทริบิวต์ที่ระบุได้โดยไม่ซ้ำกัน

ใช้ชนิดข้อมูลที่ถูกต้องสำหรับแต่ละแอตทริบิวต์
ข้อมูลบางอย่างทำให้เรามีตัวเลือกในการเลือกประเภทข้อมูลที่จะใช้เพื่อแสดงข้อมูลเหล่านั้น วันที่ ตัวอย่างเช่น เราสามารถเลือกที่จะเก็บไว้ในช่องประเภทวันที่ ช่องประเภทวันที่/เวลา ช่องประเภท Varchar หรือแม้แต่ช่องประเภทตัวเลข อีกกรณีหนึ่งคือข้อมูลตัวเลขที่ไม่ได้ใช้สำหรับการดำเนินการทางคณิตศาสตร์ แต่เพื่อระบุเอนทิตี เช่น หมายเลขใบขับขี่หรือรหัสไปรษณีย์
ในกรณีของวันที่ จะสะดวกที่จะใช้ชนิดข้อมูลของกลไก ซึ่งทำให้จัดการข้อมูลได้ง่ายขึ้น หากคุณต้องการเก็บเฉพาะวันที่ของเหตุการณ์โดยไม่ระบุเวลา ชนิดข้อมูลที่จะเลือกจะเป็นแบบง่ายๆ วันที่; หากคุณต้องการจัดเก็บวันที่และเวลาที่เกิดเหตุการณ์บางอย่างขึ้น ชนิดข้อมูลควรเป็น DateTime
การใช้ประเภทอื่น เช่น varchar หรือตัวเลข ในการจัดเก็บวันที่อาจสะดวก แต่ในบางกรณีเท่านั้น ตัวอย่างเช่น หากไม่ทราบล่วงหน้าว่าจะแสดงวันที่ในรูปแบบใด จะสะดวกต่อการจัดเก็บเป็น varchar หากประสิทธิภาพการค้นหา การเรียงลำดับ หรือการจัดทำดัชนีมีความสำคัญในการจัดการฟิลด์ประเภทวันที่ การแปลงก่อนหน้านี้เป็น float สามารถสร้างความแตกต่างได้
ข้อมูลตัวเลขที่ไม่เกี่ยวข้องกับการดำเนินการทางคณิตศาสตร์ควรแสดงเป็น varchar โดยใช้การตรวจสอบความถูกต้องของรูปแบบในการบันทึกเพื่อหลีกเลี่ยงความไม่สอดคล้องกันหรือการทำซ้ำ มิฉะนั้น คุณมีความเสี่ยงที่ข้อมูลบางอย่างจะเกินขีดจำกัดของฟิลด์ตัวเลข และบังคับให้คุณจัดโครงสร้างการออกแบบใหม่เมื่อมีการผลิตอยู่แล้ว
การใช้ตารางค้นหา
นักออกแบบที่ไม่มีประสบการณ์บางคนอาจเชื่อว่าการใช้ตารางค้นหามากเกินไปเพื่อทำให้การออกแบบเป็นมาตรฐาน อาจทำให้ ERD ของฐานข้อมูลซับซ้อนโดยไม่จำเป็น เพราะมันเพิ่มตาราง "ดาวเทียม" จำนวนมาก ซึ่งบางครั้งอาจมีองค์ประกอบไม่เกินหยิบมือ ผู้ที่คิดเช่นนี้ควรเข้าใจว่าการใช้ตารางค้นหามีประโยชน์มากกว่าข้อเสียมากมาย หากความซับซ้อนหรือขนาดของ ERD เป็นปัญหา มีเครื่องมือออกแบบ ERD ที่ช่วยให้คุณเห็นภาพไดอะแกรมในรูปแบบต่างๆ เพื่อให้เข้าใจได้ แม้จะมีความซับซ้อนก็ตาม
แบบสอบถามตัวอย่างนี้แสดงให้เห็นถึงการใช้ตารางค้นหาที่ถูกต้องในฐานข้อมูลที่ออกแบบมาอย่างดี:
SELECT StreetName, StreetNumber, Cities.Name AS City, States.Name AS State FROM Addresses INNER JOIN Cities ON Cities.CityId = Addresses.CityId INNER JOIN States ON States.StateId = Addresses.StateId
ในกรณีนี้ เรากำลังใช้ตารางค้นหาสำหรับเมืองและรัฐ
ประโยชน์ของตารางการค้นหารวมถึงการลดขนาดของฐานข้อมูล การปรับปรุงประสิทธิภาพการค้นหา และการกำหนดข้อจำกัดเกี่ยวกับชุดข้อมูลที่ถูกต้องที่เขตข้อมูลสามารถมีได้ แนวทางปฏิบัติที่ดีสำหรับตารางการค้นหาทั้งหมดเพื่อรวมบิตหรือฟิลด์บูลีนที่ระบุว่ามีการใช้งานเรกคอร์ดในตารางหรือล้าสมัย ฟิลด์นี้สามารถใช้เป็นตัวกรองเพื่อหลีกเลี่ยงองค์ประกอบที่ล้าสมัยเป็นตัวเลือกใน UI ของแอปพลิเคชัน
Normalize หรือ denormalize ตามประเภทฐานข้อมูล
ในฐานข้อมูลเชิงสัมพันธ์ที่ใช้สำหรับแอปพลิเคชันแบบดั้งเดิม การทำให้เป็นมาตรฐานเป็นสิ่งจำเป็น เป็นที่ทราบกันดีว่าการทำให้เป็นมาตรฐานช่วยลดพื้นที่จัดเก็บที่จำเป็นโดยการหลีกเลี่ยงความซ้ำซ้อน ปรับปรุงคุณภาพของข้อมูลและมีเครื่องมือหลายอย่างเพื่อเพิ่มประสิทธิภาพในการสืบค้นที่ซับซ้อน
อย่างไรก็ตาม ในฐานข้อมูลประเภทอื่นๆ จะใช้เทคนิคที่เรียกว่าดีนอร์มัลไลเซชัน ในฐานข้อมูลมิติที่ใช้เป็นคลังข้อมูล การดีนอร์มัลไลเซชันจะเพิ่มข้อมูลสำรองที่มีประโยชน์บางอย่างในตารางสคีมา
แม้ว่าจะดูเหมือนเป็นแนวคิดที่ตรงกันข้าม อันที่จริงเป็นเทคนิคการเพิ่มประสิทธิภาพที่ใช้กับตัวแบบข้อมูลหลังจากปรับให้เป็นมาตรฐานแล้ว เพื่อทำให้การเขียนและการรายงานแบบสอบถามง่ายขึ้น
การออกแบบแบบจำลองทางกายภาพในส่วนต่างๆ
ในโครงการพัฒนาซอฟต์แวร์ ผู้ออกแบบฐานข้อมูลนำเสนอโมเดลแนวคิดขนาดใหญ่แก่ผู้มีส่วนได้ส่วนเสีย โดยจะไม่แสดงรายละเอียดการใช้งาน ในทางกลับกัน ในการทำงานร่วมกับนักพัฒนา ผู้ออกแบบจะต้องจัดเตรียมแบบจำลองทางกายภาพที่มีรายละเอียดทั้งหมดของแต่ละเอนทิตีและแอตทริบิวต์ อย่างไรก็ตาม ทั้งสองรุ่นไม่จำเป็นต้องสร้างขึ้นอย่างสมบูรณ์ในช่วงเริ่มต้นของโครงการ
เมื่อใช้วิธีการแบบเปรียว นักพัฒนาแต่ละรายในช่วงเริ่มต้นของวงจรการพัฒนาแต่ละรอบจะใช้เรื่องราวของผู้ใช้อย่างน้อยหนึ่งเรื่องราวของในรอบนั้น งานของผู้ออกแบบฐานข้อมูลคือการจัดเตรียมโมเดลย่อยทางกายภาพให้กับนักพัฒนาแต่ละรายที่รวมเฉพาะอ็อบเจ็กต์ที่จำเป็นสำหรับหน่วยงาน
ในตอนท้ายของแต่ละรอบการพัฒนา โมเดลย่อยที่สร้างขึ้นในระหว่างรอบนั้นจะถูกรวมเข้าด้วยกันเพื่อให้แบบจำลองทางกายภาพที่สมบูรณ์มีรูปร่างขนานกับการพัฒนาของแอปพลิเคชัน
การใช้มุมมองและดัชนีให้เกิดประโยชน์
มุมมองและดัชนีเป็นเครื่องมือพื้นฐานสองประการในการออกแบบฐานข้อมูลเพื่อปรับปรุงประสิทธิภาพของแอปพลิเคชัน การใช้มุมมองช่วยให้จัดการสิ่งที่เป็นนามธรรมซึ่งทำให้การสืบค้นง่ายขึ้น ซ่อนรายละเอียดตารางที่ไม่จำเป็น ในทางกลับกัน มุมมองทำให้งานการปรับคิวรีให้เหมาะสมที่สุดง่ายขึ้นสำหรับกลไกฐานข้อมูล เนื่องจากช่วยให้คาดการณ์ว่าจะได้รับข้อมูลอย่างไร และเลือกกลยุทธ์ที่ดีที่สุดเพื่อให้ผลลัพธ์ของคิวรีเร็วขึ้น
ดัชนีสามารถปรับปรุงประสิทธิภาพของการสืบค้นที่ช้าโดยพิจารณาจากประสบการณ์ของผู้ใช้เมื่อฐานข้อมูลอยู่ในระหว่างการใช้งานจริง อย่างไรก็ตาม การสร้างดัชนีสามารถทำได้โดยเป็นส่วนหนึ่งของงานออกแบบฐานข้อมูล โดยคาดการณ์ความต้องการของแอปพลิเคชัน
สำหรับการสร้างดัชนี คุณต้องมีแนวคิดโดยประมาณเกี่ยวกับขนาดของแต่ละตาราง - ในแง่ของจำนวนระเบียน - แล้วสร้างดัชนีสำหรับตารางที่ใหญ่กว่า ในการเลือกฟิลด์ที่จะรวมไว้ในดัชนี คุณต้องพิจารณาฟิลด์ที่เป็นตัวแทนของคีย์ภายนอกเป็นหลักและฟิลด์ที่จะใช้เป็นตัวกรองในการค้นหา
เมื่อคุณคิดว่างานเสร็จแล้วก็ถึงเวลาปรับโครงสร้างใหม่
การออกแบบฐานข้อมูลสามารถปรับปรุงได้ตลอดเวลา เมื่อไม่มีการเปลี่ยนแปลงในฐานข้อมูลเนื่องจากความต้องการใหม่หรือความต้องการทางธุรกิจใหม่ เป็นโอกาสที่ดีที่จะดำเนินการตามขั้นตอนการปรับโครงสร้างใหม่เพื่อปรับปรุงการออกแบบ การปรับโครงสร้างใหม่หมายความว่า: การแนะนำการเปลี่ยนแปลงที่ปรับปรุงการออกแบบโดยไม่กระทบต่อความหมายของฐานข้อมูล
มีเทคนิคการรีแฟคเตอร์มากมายในการปรับปรุงการออกแบบฐานข้อมูลที่อยู่นอกเหนือขอบเขตของบทความนี้ แต่เป็นการดีที่จะทราบถึงการมีอยู่ของฐานข้อมูลเพื่อใช้เมื่อจำเป็น
การมีรายการแนวทางปฏิบัติที่ดีที่สุดอยู่ในมือทุกครั้งที่คุณต้องการออกแบบฐานข้อมูล จะช่วยให้คุณได้รับผลลัพธ์ที่ดีที่สุด เพื่อให้แอปพลิเคชันรักษาประสิทธิภาพที่เหมาะสมที่สุดในการเข้าถึงข้อมูลไว้เสมอ