เมื่อใดที่ฐานข้อมูลควรเป็นที่ต้องการสำหรับการจัดเก็บข้อมูลมากกว่าการจัดเก็บข้อมูลในไฟล์ข้อความ?
วิกิพีเดียบอกเราว่าฐานข้อมูลเป็นคอลเลกชันของข้อมูลที่จัด โดยการวัดนั้นไฟล์ข้อความของคุณเป็นฐานข้อมูล มันพูดต่อไปว่า:
โดยทั่วไปข้อมูลจะถูกจัดระเบียบเพื่อจำลองลักษณะที่เกี่ยวข้องของความเป็นจริงในวิธีที่สนับสนุนกระบวนการที่ต้องการข้อมูลนี้ ตัวอย่างเช่นการสร้างแบบจำลองความพร้อมใช้งานของห้องพักในโรงแรมในลักษณะที่สนับสนุนการค้นหาโรงแรมที่มีตำแหน่งว่าง
ส่วนนั้นเป็นแบบอัตนัย - มันไม่ได้บอกเราโดยเฉพาะว่าข้อมูลควรเป็นแบบจำลองหรือการดำเนินการใดที่จำเป็นต้องปรับให้เหมาะสม ไฟล์ข้อความของคุณประกอบด้วยระเบียนที่แตกต่างกันจำนวนหนึ่งรายการสำหรับแต่ละวันดังนั้นคุณจึงสร้างแบบจำลองแง่มุมของความเป็นจริงในแบบที่เกี่ยวข้องกับปัญหาของคุณ
ฉันรู้ว่าเมื่อคุณพูดว่า "ฐานข้อมูล" คุณอาจนึกถึงระบบการจัดการฐานข้อมูลเชิงสัมพันธ์บางอย่าง แต่การคิดถึงไฟล์ข้อความของคุณเป็นฐานข้อมูลจะเปลี่ยนคำถามของคุณจาก "เมื่อใดที่ฉันควรใช้ฐานข้อมูล" ถึง "ฉันควรใช้ฐานข้อมูลชนิดใด" การเห็นสิ่งต่าง ๆ ในแสงนั้นทำให้เห็นคำตอบได้ง่ายขึ้น: ใช้ฐานข้อมูลที่ดีกว่าเมื่อสิ่งที่คุณไม่ตรงตามความต้องการของคุณอีกต่อไป
หากสคริปต์ Python และไฟล์ข้อความธรรมดาของคุณทำงานได้ดีพอไม่จำเป็นต้องเปลี่ยน ด้วยสถิติใหม่เพียงหนึ่งรายการต่อวันและคอมพิวเตอร์เริ่มเร็วขึ้นในแต่ละปีฉันสงสัยว่าโซลูชันปัจจุบันของคุณอาจทำงานได้เป็นเวลานาน ข้อมูลทศวรรษที่ผ่านมาจะให้คุณบันทึกเพียง 3,750 บันทึกว่าเมื่อแยกวิเคราะห์อาจจะต้องน้อยกว่า 75 กิโลไบต์
ลองจินตนาการว่าแทนที่จะเป็นหนึ่งระเบียนเล็ก ๆ ต่อวันคุณตัดสินใจที่จะบันทึกทุกคำถามที่ถามใน CodeReview ผู้ถามและเมื่อใด นอกจากนี้คุณยังรวบรวมคำตอบทั้งหมดและข้อมูลเมตาที่เกี่ยวข้อง คุณสามารถเก็บทุกอย่างไว้ในไฟล์ข้อความได้ แต่ไฟล์แฟล็ตจะทำให้ยากต่อการค้นหาข้อมูลเมื่อคุณต้องการ มีข้อมูลมากเกินไปที่จะอ่านสิ่งทั้งปวงในหน่วยความจำดังนั้นเมื่อใดก็ตามที่คุณต้องการค้นหาคำถามหรือคำตอบคุณจะต้องสแกนไฟล์จนกว่าคุณจะพบสิ่งที่คุณต้องการ เมื่อคุณต้องการค้นหาคำถามทั้งหมดที่ถามโดยผู้ใช้ที่กำหนดคุณจะต้องสแกนไฟล์ทั้งหมด หากคุณต้องการค้นหาคำถามทั้งหมดที่มี "บั๊ก" เป็นแท็กคุณจะต้องสแกนผ่านไฟล์
นั่นอาจช้าอย่างน่ากลัวดังนั้นคุณอาจตัดสินใจเร่งความเร็วด้วยการสร้างดัชนีบางอย่างที่บอกให้คุณดูว่าไฟล์จะค้นหาบันทึกที่กำหนดได้จากที่ใด คุณสามารถสร้างดัชนีสำหรับคำถามอีกคำถามสำหรับผู้ใช้หนึ่งในสามของคำตอบและอื่น ๆ เมื่อคุณต้องการค้นหาคำถามที่คุณค้นหาดัชนีคำถาม (เล็กกว่านี้) รับตำแหน่งของคำถามในไฟล์ข้อมูลหลักและข้ามไปยังจุดที่ถูกต้องในไฟล์ได้อย่างรวดเร็ว นั่นเป็นการปรับปรุงประสิทธิภาพครั้งใหญ่ แน่นอนว่ามันเป็นระบบการจัดการฐานข้อมูล
ดังนั้นใช้ DBMS เมื่อเป็นสิ่งที่คุณต้องการ ใช้มันเมื่อคุณมีข้อมูลจำนวนมากเมื่อคุณจำเป็นต้องเข้าถึงข้อมูลนั้นได้อย่างรวดเร็วและอาจเป็นวิธีที่คุณไม่สามารถคาดการณ์ได้ตั้งแต่เริ่มแรก หากคุณมีข้อมูลประเภทต่าง ๆ - ประเภทบันทึกที่แตกต่างกัน - ซึ่งเชื่อมต่อกันให้ใช้ RDBMS เพื่อให้คุณสามารถเชื่อมโยงบันทึกต่างๆได้อย่างเหมาะสม