- จัดเก็บข้อมูลเท่าที่จำเป็นเท่านั้น เพราะในเวลาที่ประมวลผล 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
วันจันทร์ที่ 19 ตุลาคม พ.ศ. 2558
การใช้งาน sqlite เบื้องต้น
การใช้งาน sqlite เบื้องต้น
Sqlite เป็นโปรแกรมจัดการฐานข้อมูลที่มีขนาดเล็กมาก
และเป็นที่นิยมในการพัฒนาฐานข้อมูลในมือถือทุกค่าย ซึ่งโปรแกรม sqlite รองรับภาษา sql
และรองรับภาษาไทยด้วย
แต่เนื่องจาก คู่มือภาษาไทยหายาก เลยเขียนให้เพื่อนเริ่มต้นได้รวดเร็วมากขึ้น
ในคอมมานด์ไลน์ คำสั่งควบคุมระบบจะขึ้นต้นด้วยจุดตามด้วยคำสั่ง
และผู้ใช้งานสามารถป้อนคำสั่ง sql ได้โดยมีเครื่องหมาย “;” ระบุว่าสิ้นสุดคำสั่ง
การสร้างฐานข้อมูล
คำสั่ง sqlite <ชื่อไฟล์ฐานข้อมูล> ตัวอย่างเช่น
sqlite3 testdb.dbs
ชื่อไฟล์ฐานข้อมูล เราสามารถกำหนดนามสกุลเองได้ และถ้าไม่มีนามสกุลก็ได้ จะอยู่โฟลเดอร์เดียวกับ
sqlite3 ผู้ใช้งานสามารถกำหนดตำแหน่งไฟล์ได้ โดยระบุก่อนชื่อไฟล์ เช่น
D:\database\testdb.dbs
การใช้เรียกใช้งาน sqlite3 และการเปิดฐานข้อมูล
คำสั่ง .open <ชื่อไฟล์ฐานข้อมูล>
โปรแกรม sqlite
จะทำการปิดฐานข้อมูลที่ใช้งานอยู่และเปิดไฟล์ฐานข้อมูลใหม่ ผู้ใช้งานสามารถ
พิมพ์คำสั่ง sql ได้โดยมีเครื่องหมาย “;” ระบุว่าสิ้นสุดคำสั่ง
หรือรันโปรแกรม sqlite3 พร้อมกับเปิดฐานข้อมูล
คำสั่ง sqlite3
<ชื่อไฟล์ฐานข้อมูล> ตัวอย่างเช่น sqlite3 testdb.dbs
โปรแกรม
sqlite3 จะตรวจสอบหาไฟล์ testdb.dbs และเปิดไฟล์มาอ่าน ซึ่งถ้าไม่พบไฟล์ที่ระบุ
ระบบทำการสร้างฐานข้อมูลเปล่าและสร้างไฟล์ที่ระบุให้
หมายเหตุ
ถ้ารันโปรแกรม sqlite โดยไม่ระบุฐานข้อมูล โปรแกรมกำหนดให้สร้างฐานข้อมูลบนหน่วยความจำเครื่องทันที
สามารถใช้คำสั่ง .save <ชื่อไฟล์>
เพื่อบันทึกฐานข้อมูลในหน่วยความจำ
คำสั่งระบบที่ใช้บ่อย
.open
<ชื่อไฟล์ฐานข้อมูล> คำสั่งเปิดฐานข้อมูลที่ระบุ
พร้อมปิดฐานข้อมูลก่อนหน้า
.database
คำสั่งแสดงรายชื่อฐานข้อมูลทั้งหมดในไฟล์ จะมี สองค่าเริ่มต้น คือ main เป็นชื่อที่กำหนดขึ้นถ้าไม่ระบุชื่อฐานข้อมูล และ
temp ฐานข้อมูลทำงานขณะรันคำสั่ง sql
.dbinfo
<ชื่อฐานข้อมูล>
คำสั่งแสดงรายละเอียดฐานข้อมูล
ถ้าไม่ระบุชื่อระบบแสดงรายละเอียดฐานข้อมูล main
.backup
<ชื่อฐานข้อมูล>
<ชื่อไฟล์>
สำรองข้อมูลของฐานข้อมูล ลงในไฟล์ที่กำหนด
ถ้าไม่ระบุจะเหมือนคำสั่ง .clone ที่จะสำรองข้อมูลของฐานข้อมูล main
.clone
<ชื่อไฟล์> สำรองข้อมูล main
ลงในไฟล์ที่กำหนด
.table หรือ .tables
แสดงรายชื่อตารางในฐานข้อมูลทั้งหมด
.schema <ชื่อตาราง>
คำสั่งแสดงรายละเอียดตาราง โดยระบุเป็นคำสั่งsql
create table
ถ้าไม่ระบุชื่อตารางระบบทำการแสดงรายละเอียดตารางทั้งหมดในฐานข้อมูลที่กำลังใช้งานอยู่
.indexes
<ชื่อดัชนี> คำสั่งแสดงรายละเอียดของดัชนี (อินเด็กซ์ )
ที่ระบุ หรือแสดงรายชื่อดัชนีในกรณีไม่ระบุชื่อ
.trace
<ชื่อไฟล์> คำสั่งเริ่มต้นบันทึกคำสั่งต่างๆ ที่เรียกใช้
ในรูปแบบภาษา sql และเขียนไฟล์เมื่อใช้คำสั่ง .trace off หมายเหตุ ถ้ามีไฟล์เดิมอยู่ระบบทำการเขียนทับไฟล์เดิมทันที
.output
<ชื่อไฟล์>
คำสั่งเริ่มต้นบันทึกการแสดผลลงในเท็กซ์ไฟล์ที่ระบุ และเขียนไฟล์เมื่อใช้คำสั่ง .output
ซึ่งระบบจะทำการแสดงผลทางหน้าจอ
หมายเหตุ ถ้ามีไฟล์เดิมอยู่ระบบทำการเขียนทับไฟล์เดิมทันที
.save
<ชื่อไฟล์>
คำสั่งบันทึกข้อมูลจากหน่วยความจำลงในไฟล์ จากที่รันโปรแกรมโดยไม่ระบุฐานข้อมูล
สมัครสมาชิก:
บทความ (Atom)