ติดต่อ

SQLite vs. MySQL

ยอมแพ้ครับ ผมยอมแพ้ SQLite และตัดสินใจใช้ MySQL เป็น database backend ของ GotoKnow แล้ว คุณคงสงสัยว่าผมใช้ SQLite ทำไม แล้วถ้ามีเหตุผลในการใช้ แล้วจะยอมแพ้เสียทำไม เอาล่ะผมจะเล่าให้ฟัง

ผมเลือกใช้ SQLite เพราะ SQLite เป็น database engine ที่น่าสนใจมาก มีการออกแบบที่ดีเป็น abstract layers ซึ่งในแต่ละ layer ก็มีประเด็นที่น่าสนใจที่น่าศึกษา การออกแบบเช่นนี้แสดงให้เห็นว่าคนเขียน (D. Richard Hipp) เป็นคนที่มีความรู้ในทฤษฎีวิทยาการคอมพิวเตอร์อย่างลึกซึ้งและสามารถนำมาปฎิบัติจริงได้ นอกจากนี้ source code ก็มีความยาวเพียงประมาณ 3 หมื่นกว่าบรรทัด อยู่ในวิสัยที่ผมจะใช้เวลาอ่านทำความเข้าใจได้เพื่อเรียนรู้การทำงานภายในของ SQLite

ด้วยเหตุผลดังกล่าว ผมจึงตัดสินใจเลือกใช้ SQLite เรียกว่าถ้า SQLite ทำงานเร็ว ผมก็โชคดีไป ถ้าทำงานช้า ก็เป็นโอกาสที่ผมจะได้ศึกษาและอาจมีโอกาสได้ช่วยทำให้ SQLite เร็วขึ้นได้ ผมได้ทั้งความรู้และได้ทั้งโอกาส นับข้อดีได้อย่างนี้แล้ว SQLite ก็เป็นทางเลือกชั้นหนึ่งของผมทีเดียวในการใช้ทำ MemeExpress

แต่อย่างไรก็ตามเราออกแบบ MemeExpress ให้สามารถทำงานกับ database backend ได้หลายตัวด้วย เพื่อ flexibility ของคนที่จะนำไปใช้ ใน database server ทั้งหลายที่มีอยู่ ตัวหนึ่งที่เรามองไว้ว่าในที่สุดแล้วเราคงต้องใช้เมื่อระบบมีผู้ใช้มากขึ้นได้แก่ MySQL เพราะ MySQL ออกแบบมาเพื่อให้ใช้งานในระบบที่ต้องการ database server ศักยภาพสูงที่รองรับผู้ใช้พร้อมๆ กันหลายคน (concurrent users) ได้มาก

GotoKnow เติบโตขึ้นมาก มีผู้เขียนและผู้อ่านเพิ่มขึ้นในเวลาอันรวดเร็ว สมกับปราถนาของ สคส. ที่ต้องการเห็นคนไทย b2b (blog-to-blog) เพื่อแลกเปลี่ยนความรู้กันด้วยวิธี storytelling ด้วยการเติบโตนี้ เราเลยตัดสินใจพัฒนาในส่วนติดต่อกับ MySQL ให้สำเร็จและได้เปิดใช้งานจริงในสองสามวันที่ผ่านมาครับ

MySQL เหมาะกับ high-volume website แต่อย่างไรก็ตามสำหรับ low-volume website นั้น SQLite ก็สามารถทำงานได้ดี การใช้ server-based database อย่าง MySQL นั้นมีข้อดีที่ศักยภาพเพิ่มขึ้น แต่ในขณะเดียวกันก็มีความเสี่ยงจากการถูก hack เพิ่มมากขึ้น ส่วน SQLite นั้นเป็น embedded database ไม่มีปัญหาเรื่องการจะถูก hack แต่ก็มีศักยภาพที่ด้อยกว่า ถ้าใครจะเลือกใช้ database ตัวใดตัวหนึ่งนี้ใน application ของคุณ ก็ต้องชั่งใจในข้อดีข้อด้อยสองข้อนี้ครับ

สำหรับตอนนี้ Enjoy the speed!

บันทึกนี้เขียนที่ GotoKnow โดย 

หมายเลขบันทึก: 854, เขียน: , แก้ไข, , สัญญาอนุญาต: สงวนสิทธิ์ทุกประการ, ความเห็น: 12, อ่าน: คลิก

คำสำคัญ (keywords) #sqlite#mysql

บันทึกล่าสุด 

ความเห็น (12)

whoam-i
IP: xxx.151.232.70
เขียนเมื่อ 

ตอนนี้ผมสนใจเรื่อง SQlite มากครับ

เพราะผมคิดว่าจะใช้ SQlite เป็นฐานข้อมูลของโปรเจ็คจบอ่ะครับ

แต่มีปัญหาอยู่ที่ผมไม่รู้การใช้งานอ่ะครับ

ไม่ทราบว่าผมต้องทำอย่างไรบ้าง ถึงจะใช้บน php ได้ครับ

ที่จริงแล้วมีบนอินเทอร์เน็ตมีข้อมูลในการใช้ SQLite กับ PHP เยอะมากนะครับ นศ. ลองค้นหาดูนะครับ

  • ขอบคุณอาจารย์และทีมงานมากๆค่ะ เห็นความเปลี่ยนแปลงมากมายในช่วงนี้ค่ะ
สุ
IP: xxx.151.232.70
เขียนเมื่อ 

อาจารย์ค่ะ มีคู่มือการใช้งาน SQLite mestro ไหมค่ะ

ขอรบกวนหน่อยค่ะ ตอนนี้ต้องทำโปรเจกค่ะ ขออาจารย์ช่วนหน่อยนะคะ

Google สิครับ :-)

แจ๊ค
IP: xxx.151.232.70
เขียนเมื่อ 

อาจารย์ครับคือผมต้องการใช้งาน sqlite ร่วมกับ Delphi ครับ

พอจะมีข้อมูลเกี่ยวกับเรื่องที่ผมจะทำไหมครับ

ขอบคุณมากครับ

อาจารย์ค่ะคือต้องการใช้งาน sqlite ร่วมกับ Delphi7 พอจะมีข้อมูลไหมค่ะ

ขอบคุณมากนะค่ะ

ผมไม่ได้ใช้ Windows ครับ แล้วยิ่งการเขียนโปรแกรมด้วยเทคโนโลยีที่เป็น commercial นั้นผมไม่ได้ใช้ครับ โดยปกติผมจะไม่สนับสนุนให้นักศึกษาใช้เทคโนโลยีที่ต้องจ่ายเงินซื้อครับ ทั้งนี้เพื่อลดการขาดดุลด้านซอฟต์แวร์ครับ

ฝน
IP: xxx.157.29.146
เขียนเมื่อ 

ตอนนี้จะทำโปรเจคจบซึ่งจะใช้ sqlite กับ ภาษา c++

แต่ยังไม่มั่นใจว่า จะใช้ร่วมกับ MFC ที่เป็นplatform ของ visual c++ ได้หรือปล่าว

รวมถึงหนูอยาก ออกแบบ interface เป็นหน้าโปรแกรมและทำ webcam อยากทราบว่าใช้ MFC ดีหรือป่าวคะ หรือควรจะใช้ตัวอื่น

อยากให้อาจารย์ช่วยแนะนำหน่อยค่ะ

ขอบคุณมากค่ะ

ผมไม่สนับสนุนให้นักศึกษาใช้เทคโนโลยีปิดที่เป็นของบริษัทเอกชนเพื่อการทำโปรเจคในการเรียนครับ คุณควรเลือกใช้เทคโนโลยีระบบเปิด (open source) ทั้งหมดในการโปคเจคมากกว่านะครับ

WxWidgets ดีกว่านะครับ

หนุ่ย
IP: xxx.28.35.2
เขียนเมื่อ 

ผมแนะนำให้ใช้ boa constructor

wxpython -> boa constructor

ปล. รหัสสุ่มด้านล่าง นี้ จะกะให้ผมเข้ามาเว็บนี้ครั้งเดียวเลยนะเนี้ย !!

สุ่มน้อย ๆ หน่อยก็ได้.. เอาเวลาไปคิดทำเรื่องอื่นครับ !!

air
IP: xxx.122.92.114
เขียนเมื่อ 

ขอสอบถามหน่อยครับ คือผมต้องการใช้ air api ในส่วนของ sqlite

ร่วมกับjavascirpt เพื่อติดต่อ db อื่นๆ บนเซิร์ฟเวอร์(internet) ไม่ทราบว่ามันมีวิธีหรือไม่ครับ

เพราะผมลองหาตัวอย่างในเวปนอก sqliteของ air api มันทำได้แต่local db หรือใช้เพื่อแอปdesktopนั้นๆ เองอะครับ

รบกวนด้วยนะครับ