SQLite ประเมินค่าน้อยไปหรือเปล่า [ปิด]


15

ก่อนที่ฉันจะถามคำถามให้ฉันอธิบายความคิดของฉันเกี่ยวกับ 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 สำหรับแอปพลิเคชันที่มีผู้ใช้หลายคนได้อย่างที่ฉันอธิบาย มีข้อเสียด้านเทคนิคใดบ้างที่ฉันควรรู้ ประสบการณ์ของคุณ (ลบหรือบวก) ที่จะช่วยให้ฉันเลือกได้ถูกต้องคืออะไร?

อัปเดต: โปรดอย่าเห็นว่านี่เป็นการตัดสินใจเชิงลบของฐานข้อมูลอื่น พวกเขาส่วนใหญ่เป็นผลิตภัณฑ์ที่ดีทั้งหมด เพียงแบ่งปันความคิดของฉันที่นี่และสนใจในความคิดเห็นของคุณเกี่ยวกับเรื่องนี้


9
ขออภัย แต่เพิ่ม "ฉันถูกใช่ไหม" ไม่เปลี่ยนคำโหยหวนเป็นคำถาม
pdr

1
@pdr: ทำไมคุณถึงคิดว่าเรื่องนี้รุนแรง ฉันไม่ได้ตัดสินลบ MS-SQL หรือฐานข้อมูลอื่น พวกเขาส่วนใหญ่เป็นผลิตภัณฑ์ที่ดีทั้งหมด ฉันแค่แบ่งปันความคิดของฉันและสนใจที่จะรับฟังความคิดเห็นของเพื่อนโปรแกรมเมอร์คนอื่น ๆ ไม่มีอะไรเพิ่มเติมไม่น้อยไปกว่านี้

3
ไม่มีคำถามมีเพียงการค้นหาสำหรับการตรวจสอบ จากคำถามที่พบบ่อย: "คุณควรถามคำถามที่ปฏิบัติได้จริงและตอบได้ตามปัญหาจริงที่คุณเผชิญอยู่ช่างพูดคำถามปลายเปิดลดประโยชน์ของเว็บไซต์ของเราและผลักคำถามอื่น ๆ ออกจากหน้าแรก" programmers.stackexchange.com/faq
pdr

1
@pdr: ฉันเข้าใจว่า แต่ฉันตั้งใจถามคำถามที่นี่จริงๆ บางทีฉันอาจจะไม่ชัดเจนดังนั้นฉันจึงเปลี่ยนคำถามใหม่

4
ตัวเลือกฐานข้อมูลการเพิ่มประสิทธิภาพโค้ดไคลเอนต์เซิร์ฟเวอร์หรือแอปพลิเคชันที่ทำงานบนเว็บนี่คือการพิจารณาทุกด้านและข้อดีและข้อเสียจะต้องมีการพูดคุยกันบนแพลตฟอร์มเช่นนี้ สำหรับฉันการพูดจาโผงผางเป็นเรื่องที่มากกว่าเมื่อมีคนปฏิเสธที่จะค้นหาคุณภาพการไถ่ในเทคโนโลยีเฉพาะ
JeffO

คำตอบ:


8

มีหลายกรณีที่ SQLite มีมากมาย ผู้ใช้แผนกหรือ บริษัท เติบโตเร็วกว่ามันมาก (เราไม่เคยได้ยินเรื่องนี้มากนักเพราะไม่มีใครเรียกโปรแกรมเมอร์ว่าแอปพลิเคชั่นทำงานได้ดี) คุณสามารถทำการโต้แย้งแบบเดียวกันสำหรับไฟล์ MS Access (Windows) หรือ SQL Server Compact Edition (จำเป็นต้องติดตั้งบางส่วน) มันดีพอสำหรับแอปพลิเคชั่นในตัวเพราะคุณไม่ต้องกังวลเกี่ยวกับความปลอดภัยของไฟล์

ใน scenerio ที่มีผู้ใช้หลายคนในเครือข่ายท้องถิ่นไฟล์กำลังจะไปยังโฟลเดอร์ที่แชร์ซึ่งผู้ใช้ทุกคนต้องการเข้าถึงเพื่อความปลอดภัย การบำรุงรักษาอย่างง่ายหรือการเปลี่ยนแปลงโครงสร้างตารางใด ๆ เช่นการสำรองข้อมูลหรือเพิ่มคอลัมน์จะป้องกันผู้ใช้รายอื่นในการเข้าถึง เมื่อคืนที่ผ่านมาการสำรองข้อมูลใช้งานไม่ได้เพราะมีคนลืมที่จะออกจากแอปพลิเคชัน จะเกิดอะไรขึ้นเมื่อคุณต้องการสำรองข้อมูลในระหว่างวัน ทุกคนหาเหตุผลเข้าข้างตนเองว่าพวกเขาไม่ต้องการสำรองข้อมูลในระหว่างวันเนื่องจากข้อ จำกัด ทางเทคนิคของฐานข้อมูลของพวกเขา ในบางจุดการติดตั้ง SQL Server Express / อื่น ๆ ที่เทียบเท่าบนเซิร์ฟเวอร์ของคุณจะใช้การตั้งค่าเริ่มต้นและการกำหนดค่าความปลอดภัยมีส่วนเกี่ยวข้องมากขึ้น แต่จะต้องมีการบำรุงรักษาเพียงเล็กน้อย

มีความกังวลสำหรับ scalability / over-engineering เสมอ แม้ว่าจำนวนผู้ใช้หรือจำนวนข้อมูลยังคงจัดการได้บางคนมักจะมีความคิดที่จะใช้ข้อมูลสดบนอินทราเน็ตหรืออินเทอร์เฟซเว็บไซต์ / เบราว์เซอร์อื่น ๆ ฐานข้อมูลไฟล์มีปัญหา ใช้เวลาเพียงหนึ่งคนที่ต้องการเข้าถึงไฟล์ข้อมูลผ่าน VPN (ติดตั้งแอปบนแล็ปท็อป) เพื่อให้คุณมีปัญหา 'การปรับขนาด' คุณสามารถสร้างแอปเพื่ออนุญาตให้ผู้ใช้ที่ถูกตัดการเชื่อมต่อซึ่งสามารถซิงค์ได้เมื่อพวกเขากลับมา ดูเหมือนจะไม่คุ้มค่าสำหรับผู้ใช้นอกสำนักงานเป็นครั้งคราว


คุณสามารถสร้างอาร์กิวเมนต์เดียวกันสำหรับ SQL Server Compact Edition แต่ไม่ใช่สำหรับฐานข้อมูล MS Access ฐานข้อมูลการเข้าถึงจะได้รับการปฏิบัติเหมือนเป็นฐานข้อมูลจริง แต่ทำงานได้เหมือนไฟล์ที่แชร์ พวกมันเป็นทางออกที่บอบบาง SQL Server Compact เป็นทางเลือกที่ดีกว่าเร็วกว่าและเชื่อถือได้มากกว่าซึ่งยังคงใช้งานได้กับส่วนหน้าของ Access ฉันสงสัยว่า SQLite มีความทนทานมากกว่าฐานข้อมูล Access ถึงแม้ว่ามันจะเป็นวิธีแก้ปัญหาไฟล์ที่ใช้ร่วมกัน
Robert Harvey

@RobertHarvey - เรามีความต้องการทางธุรกิจที่ MS Access เป็นโซลูชั่นที่ดีพอ (เช่นดีกว่า Excel) เป็นเวลา 10 ปี เมื่อมีการทำข้อตกลงสำคัญเราจะต้องมีบางสิ่งบางอย่างและทำงาน ผู้ใช้ที่มีทักษะการเข้าถึงนั้นหาและใช้ประโยชน์ได้ง่ายกว่ามาก การทำงานจะต้องมีในวันที่กำหนด แต่เราโชคดีที่ความสามารถในการปรับขนาดประสิทธิภาพการเติบโตของข้อมูลและความปลอดภัยไม่เคยเป็นปัจจัย การอัพเกรด Access ตอนนี้เป็นอีกเรื่องหนึ่ง
JeffO

อย่าเข้าใจฉันผิด ฉันคิดว่าการเข้าถึงดีมาก แต่ SQL Server Compact จะเป็นข้อกำหนดแบ็กเอนด์ขั้นต่ำของฉันสำหรับแอปพลิเคชัน Access ใหม่ที่ผู้ใช้แบ่งปันข้อมูล
Robert Harvey

@ RobertHarvey - ฉันจะต้องดูให้ดี ขอบคุณ
JeffO

12

ฉันคิดว่ามันยอดเยี่ยมที่จะใช้เมื่อคุณต้องการฐานข้อมูล "ภายใน" นั่นคือฐานข้อมูลแอปพลิเคชัน / รหัสของคุณจะทำงานกับ แต่จะไม่เกี่ยวข้องโดยตรงกับสาเหตุหลักที่แอปพลิเคชันของคุณมี แทนที่จะใช้การแมปในหน่วยความจำขนาดใหญ่หรือตัวจัดการแคชคุณอาจใช้ฐานข้อมูลเช่น ฉันมีตัวอย่างที่เป็นรูปธรรมมากเมื่อเร็ว ๆ นี้ฉันใช้มันในกรณีทดสอบ JUnit / DBunit ที่ฉันต้องการเชื่อมต่อกับฐานข้อมูลดำเนินงานอ่านข้อมูลและลบทุกอย่างในตอนท้าย เนื่องจากคุณต้องสร้างไฟล์เปล่าเพื่อสร้างฐานข้อมูลนั่นเป็นเรื่องง่ายที่จะทำ

การใช้งานอื่นที่ฉันเห็น: เมื่อคุณมีผู้ใช้เพียงคนเดียว ใช่เป็นไปได้ลองคิดว่า"Firefox" หรือ "Opera"เช่น :-)

นอกจากนี้บนเว็บไซต์ SQLite พวกเขามีความซื่อสัตย์เกี่ยวกับเรื่องนั้นและให้เหตุผลเมื่อไม่ใช้มัน (ดูย่อหน้า "สถานการณ์ที่ RDBMS อื่นอาจทำงานได้ดีกว่า")

ps: เกี่ยวข้องกับความคิดเห็นใน Sql Server Express ใช่ต้องเป็น "ติดตั้ง" และฉันมีปัญหาในการอัปเดตเป็นการส่วนตัว (ฉันต้องลบรีจิสตรีคีย์บางตัวที่เกี่ยวข้องกับเวอร์ชันก่อนหน้านี้ด้วยตนเองเพื่อให้สามารถติดตั้ง 2008 R2 ได้) อย่างไรก็ตามหากคุณต้องการเปรียบเทียบ SQLite กับฐานข้อมูลที่พัฒนาโดย Microsoft ให้ดูที่Sql Server Compact Editionซึ่งคุณไม่จำเป็นต้องติดตั้ง (ดูที่ "การปรับใช้แบบอิงไฟล์ส่วนตัว")


ฉันดู CE แต่อย่างใดดูเหมือนว่า SQLite ดีกว่า / เร็วกว่า / ง่ายกว่า ไม่ทราบแน่ชัดฉันไม่ได้ใช้ / ทดสอบ CE เพียงพอที่จะแน่ใจ

5

ตัวอย่างเช่นพิจารณาแอปพลิเคชัน ERP ด้วยสมมติว่ามีผู้ใช้ 15 คน เหตุใด SQLite จึงไม่สามารถใช้งานได้?

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

สมมติว่าคุณมีผู้ใช้ 100 คนแต่ละคนทำงานเป็นเวลา 60 วินาทีในการกรอกแบบฟอร์มแล้วส่งมัน ดังนั้นคุณต้องดำเนินการประมาณ 1.6 ธุรกรรมต่อวินาที แบบจำลองข้อมูลมีความซับซ้อนและการบันทึกฟอร์มเกี่ยวข้องกับการอ่านและการเขียนลงในตารางขนาดใหญ่จำนวนมากบางทีแม้แต่การสื่อสารกับระบบที่แตกต่างกันดังนั้นผลลัพธ์แบบ "ส่งแบบฟอร์ม" ในการทำธุรกรรมที่ใช้เวลา 2 วินาที แต่ SQLite ไม่สามารถประมวลผลธุรกรรมพร้อมกันได้ซึ่งหมายความว่าสามารถประมวลผลธุรกรรม 0.5 ต่อ scond เท่านั้น อุ่ย

"อาจเป็นความเจ็บปวดในการติดตั้ง" ไม่ใช่เหตุผลที่ดีในการตัดสินใจเลือกโครงสร้างพื้นฐานที่สำคัญ นอกจากนี้ยังมีเอ็นจิน DB อื่น ๆ ให้เลือกอย่างน้อยสองตัว (MySQL และ Postgres) นั้นฟรีและไม่มีข้อ จำกัด การทำงานพร้อมกันของ SQLite อาจติดตั้งง่ายกว่า MS-SQL


ฉันเข้าใจและยอมรับ แต่ในอาชีพของฉันฉันไม่มีลูกค้าที่ใช้ผลิตภัณฑ์ของเรา (มาตรฐานและกำหนดเองส่วนใหญ่เกี่ยวข้องกับ ERP) ที่มีมากกว่า 10 คน โดยเฉลี่ยจะมีผู้ใช้ 5-6 ราย ฉันจะใช้ถ้อยคำใหม่อีกครั้ง

4
@Marcus V: คำถามคือถ้าลูกค้าโตขึ้นมากและพบว่าแอปที่คุณสร้างนั้นใช้งานได้ช้ามากและคุณบอกเหตุผลว่า DBMS ไม่สามารถรองรับผู้ใช้จำนวนมากได้และพวกเขาถาม " ทำไมคุณไม่ใช้ DBMS ที่ดีกว่า "คุณคิดว่าคำตอบที่" ยากต่อการติดตั้ง "จะเป็นอย่างไร ฉันสามารถบอกคุณได้ว่าปฏิกิริยาของฉันจะเป็นอย่างไร: ฉันคิดว่า "นี่เป็นมือสมัครเล่นฉันต้องหาคนอื่นมาเขียนซอฟต์แวร์ของฉัน"
Michael Borgwardt

คุณถูก. ฉันไม่คิดว่าคุณหมายถึงอย่างนั้น แต่ฉันสามารถรับรองได้ว่าฉันไม่ใช่มือสมัครเล่น ฉันจะใช้ระบบ DBMS "ของจริง" แน่นอนถ้าสถานการณ์จะขอ ผลิตภัณฑ์ของเรามีลิขสิทธิ์สำหรับผู้ใช้จำนวนมาก ฉันจะพัฒนาโดยใช้ SQLite เท่านั้นหากฉันรู้ว่าจำนวนผู้ใช้มีขนาดค่อนข้างเล็ก (<10-15) หากลูกค้าจะเกินขีด จำกัด ซึ่งในฐานลูกค้าของเราจะไม่เกิดขึ้นเร็ว ๆ นี้เราสามารถแปลงให้เป็นฐานข้อมูลอื่นได้อย่างรวดเร็ว / ง่ายดาย นั่นไม่ใช่วิทยาศาสตร์จรวด;) จากคำพูดของคุณฉันได้ปรับปรุงคำถามใหม่เพื่อให้ชัดเจนยิ่งขึ้น

ผู้ใช้ที่ส่งเสียงไม่เหมาะสมเกี่ยวกับการใช้งานแอปพลิเคชันอาจได้รับแจ้งเกี่ยวกับข้อ จำกัด ของผู้ใช้ แต่เลือกที่จะไปเส้นทางที่ถูกกว่า ทุกอย่างเรียบร้อยในการตั้งค่าเริ่มต้น แต่จะมีความสุขแค่ไหนเมื่อคุณต้องคิดค่าธรรมเนียมอีกครั้งในการติดตั้งบนเซิร์ฟเวอร์ใหม่เมื่อพวกเขาสามารถคัดลอกไฟล์ได้แล้ว
JeffO

1
@ เจฟฟ์ O: ฉันเดาว่าคุณเข้าใจผิดความตั้งใจของฉัน ฉันไม่ได้เลือก SQLite เพราะฟรีราคาถูกและ / หรือติดตั้งง่าย ฉันจะเลือกเพราะมันเล็กเร็วและเป็นมิตรกับทรัพยากร ดังนั้นเหตุผลส่วนใหญ่จึงเป็นเหตุผลเชิงปฏิบัติ / ทางเทคนิค ลูกค้าของเราจำนวนมากไม่ได้ใช้จ่ายมากกับฮาร์ดแวร์ดังนั้นฉันมักจะพบเซิร์ฟเวอร์เดียวกับทุกอย่างในนั้น (แลกเปลี่ยน, SQL, ฯลฯ ) และเนื่องจากสิ่งที่เกือบจะ "หมดลมหายใจ" ถ้าฉันสามารถส่งมอบผลิตภัณฑ์ที่ไม่มีความต้องการของระบบสูงลูกค้าของฉันก็จะมีความสุข SQLite ไม่ได้เพิ่มน้ำหนักใด ๆ MSSQL ทำได้

4

ฉันคิดว่า SQLLite นั้นยอดเยี่ยมสำหรับการพัฒนาแอพพลิเคชั่น แต่จุดแข็งที่ใหญ่ที่สุดคือมันไม่จำเป็นต้องติดตั้งบนไคลเอนต์

อย่างไรก็ตามอย่าประมาท SQL Server Express ด้วยเช่นกันมันเป็นฐานข้อมูลที่ยอดเยี่ยมฟรีพร้อมคุณสมบัติส่วนใหญ่ของเซิร์ฟเวอร์ sql ธรรมดาที่มีข้อ จำกัด ในขนาดฐานข้อมูล (ซึ่งยากเกินกว่าจะใช้) พร้อมกับความสามารถในการใช้เครื่องมือที่ดีเยี่ยม เซิร์ฟเวอร์ sql

ข้อเสียที่ใหญ่ที่สุดของ Afaik คือคุณต้องติดตั้งมันฉันไม่แน่ใจในส่วนนั้น แต่อาจจะเป็นวิธีที่อยู่รอบ ๆ ตอนนี้


2
คุณถูก. MS-SQL Express เป็นผลิตภัณฑ์คุณภาพดี เป็นเพียงแค่ฉันพบว่ามันป่องเล็กน้อยและใช้ทรัพยากรมากเกินไป ในทุกวันนี้พีซี / เซิร์ฟเวอร์ที่ไม่มีปัญหา ฉันเป็นแค่คนแก่และคนแก่ที่ยังคงคิดว่าฮาร์ดแวร์ที่มีประสิทธิภาพยิ่งกว่านั้นไม่ได้หมายความว่าฉันควรละเลย / เสียทรัพยากรหากฉันสามารถหลีกเลี่ยงได้ น้อยกว่าดีกว่า ... ;)

2
ฐานข้อมูลด้วยเอ็นจิ้น DB สามารถยกเลิกการเข้าถึงโดยการแคชหน่วยความจำแทนการอ่าน / เขียนจากดิสก์ แต่ผมไม่แน่ใจว่าเกี่ยวกับผลการดำเนินงานสำหรับ DB ในกระบวนการเช่น SQL Lite
Sarat

1
@sarat: Afaik SQLite ใช้แคชหน่วยความจำอย่างเข้มข้น

2

ฉันไม่ถือว่า SQLite เป็นฐานข้อมูลที่ร้ายแรงหากคุณจัดการกับข้อมูลจำนวนเล็กน้อยทุกชั่วโมง มันทำงานช้าลงอย่างเจ็บปวดและลดประสิทธิภาพของแอพพลิเคชั่นทั้งหมด ขออภัยฉันไม่เห็นด้วยกับความหลงใหลใน SQLite ของคุณ :-)


1
ฉันเคารพความคิดเห็นของคุณ ฉันแค่เป็นคนภาคปฏิบัติ เมื่อฉันเลือกเครื่องมือฉันเลือกมันเพราะฉันคิดว่ามันเป็นการตัดสินใจที่สมจริงที่สุด ฉันไม่ได้หลงใหล SQLite แต่ชื่นชมวิธีที่พวกเขาจัดการเพื่อใส่ในแพคเกจขนาดเล็กที่มีประสิทธิภาพและรวดเร็วเช่นนั้น เช่นเดียวกับที่ฉันกล่าวถึงในคำถามของฉัน: ถ้า MS-SQL เป็นเครื่องมือที่ดีกว่าสำหรับงานเฉพาะฉันก็จะเลือกมัน แต่อย่างที่ฉันอธิบายหลายครั้งฉันเชื่อว่า SQLite นั้นเหมาะสมดี

การใช้ข้อมูลจำนวนมากนั้นเป็นเรื่องใหญ่หาก
JeffO

@Jeff O: ถูกต้อง ฉันจะเลือก SQLite ถ้าจำนวนผู้ใช้ค่อนข้างต่ำ (<10-15) และจำนวนข้อมูลทั้งหมดไม่สูง จากประสบการณ์ของเราขนาดฐานข้อมูลทั้งหมดมักจะ 300-400MB และแทบไม่เคย> 1GB

1

ปัญหาเกี่ยวกับฐานข้อมูลคือพวกเขามักจะสะสมข้อมูลมากขึ้นเรื่อย ๆ การเลือกฐานข้อมูลแบบเบาบางทำให้เกิดความเสี่ยงที่เครื่องมือของคุณจะปรับขนาดไม่เหมาะสม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.