ก่อนที่ฉันจะถามคำถามให้ฉันอธิบายความคิดของฉันเกี่ยวกับ SQLite ก่อน
ฉันชอบเครื่องมือที่มีขนาดเล็กเร็วและที่สำคัญมีฟังก์ชันที่จำเป็นจริงๆเท่านั้น นั่นเป็นเหตุผลที่ฉันชอบ SQLite และฉันชอบ MS-SQL น้อยลง
ตัวอย่างเช่น: MS-SQL อาจมีฟังก์ชั่นการปรับขนาดและอื่น ๆ อีกมากมาย แต่ก็อาจเป็นเรื่องยากที่จะติดตั้งหากคุณโชคไม่ดี แน่นอนฉันไม่ได้บอกว่าการติดตั้งที่ยากเป็นเหตุผลที่ไม่เลือกฐานข้อมูลเฉพาะ
ไม่เข้าใจฉันผิด: MS-SQL เป็นผลิตภัณฑ์คุณภาพดี ฉันมีประสบการณ์มากกับ MS-SQL; ฉันเข้าใจผลิตภัณฑ์เป็นอย่างดีในฐานะมืออาชีพ ฉันชอบน้อยกว่าในบางกรณีที่ไม่จำเป็นจริงๆ (= มีผู้ใช้ไม่มาก <10-15)
คุณใช้ฟังก์ชันการทำงานของฐานข้อมูลมากน้อยเพียงใด จากประสบการณ์ของฉันมันมักจะเป็น SQL ปกติ (SELECT, INSERT และ UPDATE)
ฉันชอบ SQLite น่าหลงใหลรวดเร็ว มันง่ายมากที่จะ "ติดตั้ง" ฉันคิดว่า SQLite สามารถทำได้มากกว่าที่อ้างว่าทำได้ เหตุใดจึงใช้สำหรับแอปพลิเคชันผู้ใช้แบบกระบวนการเดียว / เดียว? ท้ายที่สุด: มีแอปพลิเคชั่นไม่มากที่เข้าถึงฐานข้อมูลอยู่ตลอดเวลา
ตัวอย่างเช่นพิจารณาแอปพลิเคชัน ERP ด้วยสมมติว่ามีผู้ใช้ 15 คน เหตุใด SQLite จึงไม่สามารถใช้งานได้? ให้หน้ามัน: ในประสบการณ์ระดับมืออาชีพของฉันเวลาส่วนใหญ่ผู้ใช้แอปพลิเคชันประเภทนี้จะเข้าถึงฐานข้อมูลประมาณ 5-10% ของเวลาทั้งหมดที่พวกเขากำลังใช้แอปพลิเคชัน ในอีก 90-95% พวกเขาเพียงแค่ดูข้อมูลบนหน้าจอการป้อนข้อมูลในกริด / แบบฟอร์มและเมื่อพวกเขาบันทึกอินพุตที่ไม่เกิน 1 วินาทีของเวลาฐานข้อมูล Fe: เวลาอินพุต 1,5 นาทีเทียบกับ 1 วินาทีของการประหยัดเวลา
หากไฟล์ฐานข้อมูล SQLite ถูกล็อคระหว่างผู้ใช้ "ประหยัดเวลา" ผู้ใช้อื่นที่ต้องการเข้าถึงฐานข้อมูลจะต้องรอ แต่พวกเขาไม่สังเกตเห็นว่าเพราะเวลารอจะน้อยมาก (ไม่สามารถสังเกตเห็นได้) ในรหัสคุณต้องจัดการกับเวลา "ยุ่ง" ของฐานข้อมูลเพื่อหลีกเลี่ยงข้อยกเว้น แต่ก็ไม่ยากที่จะทำ
ผู้ชายบางคนที่ต้องคิดเหมือนกันเช่นฉันได้แม้กระทั่งสร้างโซลูชั่นที่ลูกค้าเซิร์ฟเวอร์สำหรับ SQLite: SQLitening สิ่งนี้ทำให้ฉันมั่นใจมากขึ้นว่าฉันจะไม่หลอกตัวเอง
แน่นอนว่ามีแอปพลิเคชั่นที่เน้นฐานข้อมูลที่ SQLite ไม่พอดี แต่อย่างที่ฉันคิดตอนนี้แอพพลิเคชั่นที่มีผู้ใช้หลายคนถ้าพวกเขามีผู้ใช้ไม่เกิน 15 คนก็ควรจะใช้ SQLite
ลูกค้าของเราหลายคนไม่ได้ใช้จ่ายด้านฮาร์ดแวร์มากนักดังนั้นฉันมักจะพบกับเซิร์ฟเวอร์เพียงอย่างเดียวที่มีทุกอย่างในนั้น (แลกเปลี่ยน, SQL, ลูกค้า ฯลฯ ) และเนื่องจากสิ่งเหล่านี้เกือบจะ "หมดลมหายใจ" ถ้าฉันสามารถส่งมอบผลิตภัณฑ์ที่ไม่มีความต้องการของระบบสูงลูกค้าของฉันก็จะมีความสุข SQLite ไม่ได้เพิ่มน้ำหนักใด ๆ (อย่างน้อยก็ไม่มาก) MS-SQL ทำ ดังนั้นฉันจะไม่เลือก SQLite เพราะฟรีราคาถูกหรือติดตั้งง่าย ฉันจะเลือกด้วยเหตุผลเชิงปฏิบัติ / ทางเทคนิค
FYI: ในอาชีพของฉันเราขายผลิตภัณฑ์ (กำหนดเองและมาตรฐานซึ่งส่วนใหญ่เกี่ยวข้องกับ ERP) ให้กับลูกค้าที่โดยเฉลี่ยแล้วไม่เกิน 5-6 คนจะใช้ผลิตภัณฑ์ มีข้อยกเว้นบางอย่าง แต่ไม่เกิน 10-15 คน
คำถามคือฉันคิดถูกหรือไม่ว่าฉันสามารถใช้ SQLite สำหรับแอปพลิเคชันที่มีผู้ใช้หลายคนได้อย่างที่ฉันอธิบาย มีข้อเสียด้านเทคนิคใดบ้างที่ฉันควรรู้ ประสบการณ์ของคุณ (ลบหรือบวก) ที่จะช่วยให้ฉันเลือกได้ถูกต้องคืออะไร?
อัปเดต: โปรดอย่าเห็นว่านี่เป็นการตัดสินใจเชิงลบของฐานข้อมูลอื่น พวกเขาส่วนใหญ่เป็นผลิตภัณฑ์ที่ดีทั้งหมด เพียงแบ่งปันความคิดของฉันที่นี่และสนใจในความคิดเห็นของคุณเกี่ยวกับเรื่องนี้