- จัดเก็บข้อมูลเท่าที่จำเป็นเท่านั้น เพราะในเวลาที่ประมวลผล SQLite ต้องอ่านและเขียนข้อมูลจากพื้นที่จัดเก็บทุกครั้ง ถ้ามีอ่านข้อมูลจำนวนน้อยๆ ข้อมูลนั้นจะอยู่หน่วยความจำซึ่งจะทำงานได้ประสิทธิภาพสูง
- พยายามหลีกเลี่ยงการใช้งาน ทรานแซ็คชั่น transaction เพราะการทำงานแต่ละคำสั่ง มีการอ่าน อ่านซ้ำ เขียนและจัดเก็บไฟล์ข้อมูลที่เปลี่ยนแปลง ซึ่งทำให้การทำงานช้ากว่าที่ไม่มีทรานแซ็คชั่น
- การสร้างดัชนีให้มีประสิทธิภาพ ดัชนีช่วยให้การค้นหาข้อมูลรวดเร็วขึ้น มีแนวทางพิจารณาต่อไปนี้
- ดัชนีช่วยเพิ่มประสิทธิภาพในการอ่านข้อมูล เช่น คำสั่ง select แต่จะลดประสิทธิภาพในการแก้ไขข้อมูล ถ้าตารางมีการแก้ไขข้อมูลบ่อยอาจทำให้การทำงานช้าลง
- ลำดับคอลัมน์ในดัชนีมีความสำคัญมา ควรเรียงตาม คอลัมน์ที่ใช้ในส่วน where และควรเรียงลำดับตาม order by
- ควรสร้างดัชนี ของทุกคอลัมน์ที่ใช้ค้นหา ( ในส่วน where หรือ join )
- ในกรณีที่สร้างดัชนีที่ไม่ซ้ำกัน เช่น primary key SQLite ทำงานได้รวดเร็วมาก เพราะดัชนีจะอ้างอิงกับข้อมูลในตารางโดยตรง
- ควรสร้างตารางให้เล็กที่สุด เพราะทำให้ประหยัดเนื้อจัดเก็บข้อมูล และทำให้การทำงานเร็วขึ้น
- การใช้ชนิดข้อมูล BLOB ใน SQLite จัดเก็บข้อมูลแยกออกจากข้อมูลอื่นๆในตาราง ถ้าข้อมูลที่ต้องจัดเก็บมีขนาดใหญ่มาก (มากกว่า 1 k ไบต์) ควรสร้างเป็นไฟล์ที่ใช้ในการจัดเก็บข้อมูลและจัดเก็บชื่อไฟล์ข้อมูลนั้นแทน เช่น ข้อมูลรูปภาพ บทความขนาดใหญ่
- ถ้าต้องการใช้ข้อมูลชั่วคราว และถูกลบอัตโนมัติทุกครั้งที่ รีสตาร์ทใหม่ ควรใช้คำสั่ง CREATE TEMP แทน TABLE CREATE TABLE
- ควรเลี่ยงการใช้คำสั่งประเภท subquery ใน SQLite ทำงานโดยสร้างตารางชั่วคราวมาจัดเก็บข้อมูลก่อน ( ซึ่งต้องมีการอ่านเขียนไฟล์ ) ทำให้การทำงานช้าลง
- ควรใช้คำสั่ง VACUUM เพื่อจัดเรียงข้อมูลในฐานข้อมูลทุกครั้งที่มีการเปลี่ยนแปลงข้อมูลจำนวนมาก หรือเป็นระยะๆ คำสั่ง VACUUM ทำให้ไฟล์ฐานข้อมูลมีขนาดเล็กลงและทำงานเร็วขึ้น
- ลำดับคอลัมน์ในตารางมีความสำคัญมากต่อประสิทธิภาพการทำงานโดยรวม เพราะ SQLite จะทำค้นหาข้อมูลทีละคอลัมน์ตามลำดับใน schema ( ลำดับในคำสั่งสร้าง CREATE TABLE ) ดังนั้นควรเรียงตามความสำคัญในการค้นหาข้อมูลหรือใช้เป็นเงื่อนไขคำสั่งและควรมีเรียงลำดับความสำคัญและขนาดพื้นที่ข้อมูล และข้อมูลที่มีขนาดใหญ่และไม่ได้ใช้ในเงื่อนไขการทำงานควรอยู่ลำดับท้ายๆๆฟฟๆฟฟๆ
วันเสาร์ที่ 31 ตุลาคม พ.ศ. 2558
การเพิ่มประสิทธิภาพของ SQLite
สมัครสมาชิก:
ส่งความคิดเห็น (Atom)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น