อุปกรณ์และโค้ดในการทดสอบ
- สเปคโน๊ตบุ๊ค
- ภาษาที่เลือกใช้ : Python 3.6
- Library ที่เลือกใช้
- Sqlite3
- Sqlite3
- MariaDB / MySQL
- mysqlclient (MySQLdb)
- PostgreSQL
- psycopg2
- โค้ดที่ใช้ในการทดสอบ
ทำการทดสอบ
ในตอนแรกนั้นผมได้ทำการเขียนโค้ด generate ข้อมูลของนักศึกษาทั้งหมด 200,000 คน โดยจะมีข้อมูลเกรดคนละ 45 วิชา เพื่อทำการทดสอบ SQLite เพียงอย่างเดียว สรุปแล้วจะได้ออกมา 3 ตารางดังนี้- ตารางวิชา : 45 วิชา
- ตารางรายชื่อนศ. : 200,000 คน (สุ่มชื่อนามสกุล)
- ตารางเกรดของนศ.ทั้งหมด : 9,000,000 รายการ
ทีนี้ต่อมาเลยคิดว่าจะทดสอบ RDBMS 3 ตัว จึงได้ export ข้อมูลข้างบนออกมาเป็นไฟล์ csv รวมแล้วได้ขนาดไฟล์ 476.9 MB จากนั้นก็ทำการทดสอบต่างๆ ซึ่งก็ได้ผลสรุปออกมาดังนี้
จากผลลัพธ์ที่ได้ จะเห็นว่า SQLite จะใช้เวลาในการ import ที่น้อยกว่าอีก 2 ตัวมาก ส่วนในการ query จะใช้เวลาใกล้เคียงกับ PostgreSQL
ส่วนข้อดีที่ผมคิดว่า MariaDB กับ PostgreSQL มีเหนือกว่า SQLite คงน่าจะเป็นในเรื่องของความปลอดภัยที่จะต้องใช้ username และ password ในการที่จะเข้าถึง database ได้ จึงเกิดความคิดว่าในโปรเจคของวิชา DATABASE SYSTEMS คงจะเลือกใช้ PostgreSQL ทั้งนี้ทั้งนั้นก็ต้องลองปรึกษากันในกลุ่มอีกที
จากผลลัพธ์ที่ได้ จะเห็นว่า SQLite จะใช้เวลาในการ import ที่น้อยกว่าอีก 2 ตัวมาก ส่วนในการ query จะใช้เวลาใกล้เคียงกับ PostgreSQL
ส่วนข้อดีที่ผมคิดว่า MariaDB กับ PostgreSQL มีเหนือกว่า SQLite คงน่าจะเป็นในเรื่องของความปลอดภัยที่จะต้องใช้ username และ password ในการที่จะเข้าถึง database ได้ จึงเกิดความคิดว่าในโปรเจคของวิชา DATABASE SYSTEMS คงจะเลือกใช้ PostgreSQL ทั้งนี้ทั้งนั้นก็ต้องลองปรึกษากันในกลุ่มอีกที


