PostgreSQL compare with Sqlite and MySQL
เป็นการใส่ข้อมูลเกี่ยวกับคลังเก็บสินค้าที่จะส่งให้ลูกค้า โดยใส่ข้อมูลตารางละ 20 ล้านrecord เท่ากันทั้ง 3 โปรแกรม
Sqlite และ MySQL ทำงานบน Windows 7 และ PostgreSQL ทำงานบน Ubuntu
Size
Sqlite (9.34 GB)MySQL (20.9 GB)
PostgreSQL (17GB)
ภาพแสดงขนาดของ database ในโปรแกรม PostgreSQL |
_________________________________________________________________
select data from a database
Select ครั้งที่ 1เชื่อมสองตารางเข้าด้วยกัน โดยใช้ord_idเป็นเงื่อนไขให้สองตารางเชื่อมกัน คือ ตาราง inv_trans และ order_item ที่มีเลข order เท่ากันจะนำมาเชื่อมกัน เพื่อให้ทราบว่า สินค้าที่จะต้องมีการขนส่งเป็นสินค้าชนิดใด และเลือกมาแต่ข้อมูลที่มีเลข order เท่ากับ 12300000
select i.*,o.ty_group from inv_trans i inner join order_item o
on i.ord_id=o.ord_id and o.ord_id='12300000';
Sqlite
ใช้เวลา 7 min 52.2 sec
MySQL
ครั้งแรกใช้เวลา 3 min 33.58sec
ครั้งที่ 2 ใช้เวลา 39.76 sec
ครั้งที่ 3 และครั้งถัดๆไปจะใกล้เคียงกับครั้งที่ 2 ไม่มาก
PostgreSQL
ครั้งแรกใช้เวลา 2 min 9.74sec
ครั้งที่ 2 ใช้เวลา 12.2 sec
ครั้งที่ 3 ใช้เวลา 5.97 sec
ครั้งที่ 4 และครั้งถัดๆไปจะใกล้เคียงกับครั้งที่ 3 ไม่มาก
ภาพแสดงการ select ครั้งที่ 1 ใช้เวลา 2 min 9.74 sec |
ภาพแสดงการ select ครั้งที่ 2 ใช้เวลา 12.2 sec |
ภาพแสดงการ select ครั้งที่ 3 ใช้เวลา 5.97 sec |
สรุป ถ้าเทียบในครั้งแรก PostgreSQL ใช้เวลาในการ select data น้อยที่สุด รองลงมาคือ MySQL และ Sqlite ตามลำดับ
************************************************************************
Select ครั้งที่ 2 เชื่อมสองตารางเข้าด้วยกัน โดยใช้ trans_id เป็นเงื่อนไขให้สองตารางเชื่อมกัน คือ ตาราง inv_trans และ tr_item ที่มีเลข trans_id เท่ากันจะนำมาเชื่อมกัน เพื่อให้ทราบว่า ตำแหน่งที่ตั้งของสินค้าและ item_id ของสินค้าที่จำต้องส่งไปยังลูกค้า โดยกำหนดให้แสดงแต่ข้อมูลที่มีเลข order เป็น12300000
select i.*,t.loc_id,t.item_id from inv_trans i inner join tr_item t
on i.trans_id=t.trans_id and i.ord_id='12300000';
Sqlite
ใช้เวลา 5 min 52.79 sec
MySQL
ครั้งแรกใช้เวลา 6 min 55.73 sec
ครั้งที่ 2 ใช้เวลา 2 min 30.46 sec
ครั้งที่ 3 และครั้งถัดๆไปจะใกล้เคียงกับครั้งที่ 2 ไม่มาก
PostgreSQL
ครั้งแรกใช้เวลา 26.997 sec
ครั้งที่ 2 ใช้เวลา 25.31 sec
ครั้งที่ 3 ใช้เวลา 6.484 sec
ครั้งที่ 4 และครั้งถัดๆไปจะใกล้เคียงกับครั้งที่ 3 ไม่มาก
ภาพแสดงการ select ครั้งที่ 1 ใช้เวลา 26.997 sec |
ภาพแสดงการ select ครั้งที่ 1 ใช้เวลา 25.31 sec |
ภาพแสดงการ select ครั้งที่ 1 ใช้เวลา 6.484 sec |
สรุป ถ้าเทียบในครั้งแรก PostgreSQL ใช้เวลาในการ select data น้อยที่สุด รองลงมาคือ Sqlite และ MySQL ตามลำดับ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น