คำถามติดแท็ก sqlite

SQLite เป็นไลบรารีซอฟต์แวร์ที่ใช้เอ็นจินฐานข้อมูล SQL แบบทรานแซคชันที่มีอยู่ในตัวเองแบบไร้เซิร์ฟเวอร์

10
ปรับปรุงประสิทธิภาพ INSERT ต่อวินาทีของ SQLite
การเพิ่มประสิทธิภาพของ SQLite นั้นยุ่งยาก ประสิทธิภาพการแทรกจำนวนมากของแอพพลิเคชั่น C สามารถเปลี่ยนจาก 85 เม็ดต่อวินาทีไปเป็นมากกว่า 96,000 เม็ดต่อวินาที! พื้นหลัง:เรากำลังใช้ SQLite เป็นส่วนหนึ่งของแอปพลิเคชันเดสก์ท็อป เรามีข้อมูลการกำหนดค่าจำนวนมากที่เก็บไว้ในไฟล์ XML ที่มีการแยกวิเคราะห์และโหลดลงในฐานข้อมูล SQLite เพื่อการประมวลผลเพิ่มเติมเมื่อเริ่มต้นแอปพลิเคชัน SQLite นั้นเหมาะสำหรับสถานการณ์นี้เพราะมันรวดเร็วไม่ต้องมีการกำหนดค่าพิเศษและฐานข้อมูลจะถูกเก็บไว้ในดิสก์เป็นไฟล์เดียว เหตุผล: ตอนแรกฉันรู้สึกผิดหวังกับการแสดงที่ฉันได้เห็น ปรากฎว่าประสิทธิภาพของ SQLite อาจแตกต่างกันอย่างมีนัยสำคัญ (ทั้งสำหรับการแทรกจำนวนมากและการเลือก) ขึ้นอยู่กับวิธีการกำหนดค่าฐานข้อมูลและวิธีการที่คุณใช้ API ไม่ใช่เรื่องง่ายที่จะคิดออกว่าตัวเลือกและเทคนิคทั้งหมดเป็นอย่างไรดังนั้นฉันจึงคิดว่าควรสร้างรายการวิกิชุมชนนี้เพื่อแบ่งปันผลลัพธ์กับผู้อ่าน Stack Overflow เพื่อช่วยคนอื่น ๆ ในการตรวจสอบปัญหาเดียวกัน การทดลอง:แทนที่จะพูดถึงเคล็ดลับประสิทธิภาพในแง่ทั่วไป (เช่น"ใช้ธุรกรรม!" ) ฉันคิดว่ามันดีที่สุดในการเขียนรหัส C และวัดผลกระทบของตัวเลือกต่างๆ เราจะเริ่มด้วยข้อมูลง่ายๆ: ไฟล์ข้อความที่คั่นด้วยแท็บ TAB ขนาด 28 MB (ประมาณ 865,000 บันทึก) ของตารางการขนส่งที่สมบูรณ์สำหรับเมืองโตรอนโต …

16
เลือกแถวแรกในแต่ละกลุ่มจำแนกตามกลุ่ม?
เป็นชื่อแนะนำ, GROUP BYฉันต้องการที่จะเลือกแถวแรกของชุดของแต่ละแถวมีการจัดกลุ่ม โดยเฉพาะถ้าฉันมีpurchasesตารางที่มีลักษณะเช่นนี้: SELECT * FROM purchases; เอาท์พุทของฉัน: id | ลูกค้า | รวม --- + + ---------- ------ 1 | โจ | 5 2 | แซลลี่ | 3 3 | โจ | 2 4 | แซลลี่ | 1 ฉันต้องการค้นหาidการซื้อที่ใหญ่ที่สุด ( total) จากแต่ละcustomerรายการ บางสิ่งเช่นนี้ SELECT FIRST(id), customer, FIRST(total) FROM purchases …

17
วิธีแสดงตารางในไฟล์ฐานข้อมูล SQLite ที่เปิดด้วย ATTACH
SQL ชนิดใดที่สามารถใช้เพื่อแสดงรายการตารางและแถวภายในตารางเหล่านั้นในไฟล์ฐานข้อมูลSQLite - เมื่อฉันแนบไฟล์ด้วยATTACHคำสั่งบนเครื่องมือบรรทัดคำสั่งSQLite 3 แล้ว
1197 sql  database  sqlite  metadata 

22
ฉันจะตรวจสอบ SQLite ว่ามีตารางอยู่ได้อย่างไร?
ฉันจะตรวจสอบใน SQLite อย่างเชื่อถือได้อย่างไรว่ามีตารางผู้ใช้อยู่หรือไม่ ฉันไม่ได้ขอวิธีที่ไม่น่าเชื่อถือเช่นตรวจสอบว่า "select *" บนตารางส่งคืนข้อผิดพลาดหรือไม่ (นี่เป็นความคิดที่ดีใช่หรือไม่) เหตุผลเป็นเช่นนี้ ในโปรแกรมของฉันฉันต้องสร้างและเติมตารางบางอย่างถ้าไม่มีอยู่แล้ว หากมีอยู่แล้วฉันต้องอัปเดตบางตาราง ฉันควรใช้เส้นทางอื่นแทนสัญญาณว่าตารางที่มีปัญหาได้ถูกสร้างขึ้นแล้ว - ตัวอย่างเช่นโดยการสร้าง / วาง / การตั้งค่าสถานะที่แน่นอนในไฟล์การเริ่มต้นโปรแกรม / การตั้งค่าโปรแกรมของฉันบนดิสก์หรืออะไร? หรือแนวทางของฉันเข้าท่าไหม?
893 sqlite 

10
แนวปฏิบัติที่ดีที่สุดสำหรับ SQLite บน Android คืออะไร
สิ่งที่จะได้รับการพิจารณาว่าเป็นแนวปฏิบัติที่ดีที่สุดเมื่อเรียกใช้งานแบบสอบถามบนฐานข้อมูล SQLite ภายในแอป Android การเรียกใช้แทรกลบและเลือกคิวรีจาก doInBackground ของ AsyncTask ปลอดภัยหรือไม่? หรือฉันควรใช้เธรด UI ฉันคิดว่าการสืบค้นฐานข้อมูลอาจ "หนัก" และไม่ควรใช้เธรด UI เนื่องจากสามารถล็อกแอพได้ - ทำให้แอปพลิเคชันไม่ตอบสนอง (ANR) หากฉันมีหลาย AsyncTasks พวกเขาควรแบ่งปันการเชื่อมต่อหรือพวกเขาควรเปิดการเชื่อมต่อแต่ละคน? มีแนวทางปฏิบัติที่ดีที่สุดสำหรับสถานการณ์เหล่านี้หรือไม่?
694 android  database  sqlite 


24
เป็นไปได้หรือไม่ที่จะแทรกหลายแถวในฐานข้อมูล SQLite?
ใน MySQL คุณสามารถแทรกหลายแถวดังนี้ INSERT INTO 'tablename' ('column1', 'column2') VALUES ('data1', 'data2'), ('data1', 'data2'), ('data1', 'data2'), ('data1', 'data2'); อย่างไรก็ตามฉันได้รับข้อผิดพลาดเมื่อพยายามทำสิ่งนี้ เป็นไปได้หรือไม่ที่จะแทรกหลายแถวในฐานข้อมูล SQLite? ไวยากรณ์ที่จะทำคืออะไร?
551 sql  sqlite  syntax 

18
SQLite - UPSERT * ไม่ใช่ * INSERT หรือ REPLACE
http://en.wikipedia.org/wiki/Upsert แทรกการปรับปรุงที่เก็บไว้ proc บน SQL Server มีวิธีที่ฉลาดในการทำเช่นนี้ใน SQLite ที่ฉันไม่ได้คิด? โดยทั่วไปฉันต้องการอัปเดตสามในสี่คอลัมน์หากบันทึกมีอยู่หากไม่มีอยู่ฉันต้องการแทรกระเบียนด้วยค่าเริ่มต้น (NUL) สำหรับคอลัมน์ที่สี่ ID เป็นคีย์หลักดังนั้นจะมีเพียงหนึ่งระเบียนที่ UPSERT เท่านั้น (ฉันพยายามหลีกเลี่ยงโอเวอร์เฮดของ SELECT เพื่อกำหนดว่าฉันต้องอัปเดตหรือแทรกอย่างชัดเจน) ข้อเสนอแนะ? ฉันไม่สามารถยืนยันได้ว่าไวยากรณ์บนไซต์ SQLite สำหรับ TABLE CREATE ฉันไม่ได้สร้างตัวอย่างเพื่อทดสอบ แต่ดูเหมือนจะไม่ได้รับการสนับสนุน .. ถ้าเป็นเช่นนั้นฉันมีสามคอลัมน์ดังนั้นมันจะมีลักษณะดังนี้: CREATE TABLE table1( id INTEGER PRIMARY KEY ON CONFLICT REPLACE, Blob1 BLOB ON CONFLICT REPLACE, Blob2 BLOB ON CONFLICT REPLACE, Blob3 …
535 sql  sqlite  upsert 

17
'การกำหนดค่าเพิ่มเติม' จำเป็นสำหรับการอ้างอิงแอสเซมบลีโหมดผสม. NET 2.0 ในโครงการ. NET 4.0 ได้อย่างไร
ฉันมีโครงการที่ฉันต้องการใช้ฟีเจอร์. NET 4.0 บางตัว แต่ข้อกำหนดหลักคือฉันสามารถใช้เฟรมเวิร์ก System.Data.SQLite ซึ่งคอมไพล์ด้วย 2.X ฉันเห็นการกล่าวถึงความเป็นไปได้เช่นคำตอบที่ยอมรับได้ที่นี่แต่ฉันไม่เห็นวิธีการบรรลุเป้าหมายนี้อย่างแท้จริง เมื่อฉันลองและเรียกใช้โครงการ 4.0 ของฉันในขณะที่อ้างอิงแอสเซมบลี 2.X ฉันได้รับ: แอสเซมบลีโหมดผสมถูกสร้างขึ้นจากเวอร์ชัน 'v2.0.50727' ของรันไทม์และไม่สามารถโหลดในรันไทม์ 4.0 โดยไม่มีข้อมูลการกำหนดค่าเพิ่มเติม "การกำหนดค่าเพิ่มเติม" อะไรที่จำเป็น?

6
มี SQLite เทียบเท่ากับ DESCRIBE ของ MySQL (ตาราง) หรือไม่?
ฉันเพียงแค่ได้รับการเรียนรู้เริ่มต้นSQLite มันจะดีเพื่อให้สามารถดูรายละเอียดของตารางเช่น DESCRIBE [table]MySQL PRAGMA table_info [table]ยังไม่ดีพอเนื่องจากมีเพียงข้อมูลพื้นฐาน (ตัวอย่างเช่นจะไม่แสดงว่าคอลัมน์เป็นเขตข้อมูลบางประเภทหรือไม่) SQLite มีวิธีทำเช่นนี้หรือไม่?
443 mysql  sqlite 

18
วิธีรับรายการชื่อคอลัมน์ในฐานข้อมูล Sqlite3
ฉันต้องการย้ายแอพ iPhone ไปยังฐานข้อมูลเวอร์ชันใหม่ เนื่องจากฉันไม่ได้บันทึกบางเวอร์ชันฉันต้องตรวจสอบว่ามีชื่อคอลัมน์บางชื่ออยู่ รายการ Stackoverflowนี้แนะนำให้ทำการเลือก SELECT sql FROM sqlite_master WHERE tbl_name = 'table_name' AND type = 'table' และแยกวิเคราะห์ผลลัพธ์ นั่นเป็นวิธีทั่วไปใช่ไหม ทางเลือก?
373 sqlite 

6
แทรกคอลัมน์ใหม่ลงในตารางใน sqlite หรือไม่
ผมมีตารางที่มีคอลัมน์name, ,qty rateตอนนี้ฉันต้องเพิ่มคอลัมน์ใหม่COLNewในระหว่างnameและqtyคอลัมน์ ฉันจะเพิ่มคอลัมน์ใหม่ในระหว่างสองคอลัมน์ได้อย่างไร
354 sqlite 

10
Java และ SQLite [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันดึงดูดความเรียบร้อยที่ฐานข้อมูลไฟล์เดียวให้ ไลบรารีไดรเวอร์ / ตัวเชื่อมต่อใดที่อยู่ข้างนอกเพื่อเชื่อมต่อและใช้ SQLite กับ Java ฉันค้นพบไลบรารีแรปเปอร์แล้วhttp://www.ch-werner.de/javasqliteแต่มีโครงการเด่นอื่น ๆ อีกหรือไม่
333 java  sqlite 

9
คุณสมบัติด้านประสิทธิภาพของ sqlite พร้อมไฟล์ฐานข้อมูลขนาดใหญ่มาก ๆ คืออะไร? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันรู้ว่า sqlite ทำงานได้ไม่ดีกับไฟล์ฐานข้อมูลที่มีขนาดใหญ่มากแม้ว่าจะได้รับการสนับสนุน (เคยมีความคิดเห็นในเว็บไซต์ sqlite ที่ระบุว่าหากคุณต้องการขนาดไฟล์ที่สูงกว่า 1GB คุณอาจต้องการพิจารณาใช้ rdbms ระดับองค์กร ไม่พบอีกต่อไปอาจเกี่ยวข้องกับ SQL เวอร์ชันเก่ากว่า) อย่างไรก็ตามเพื่อจุดประสงค์ของฉันฉันต้องการทราบว่ามันเลวร้ายเพียงใดก่อนที่ฉันจะพิจารณาโซลูชันอื่น ๆ ฉันกำลังพูดถึงไฟล์ข้อมูล sqlite ในช่วงหลายกิกะไบต์ตั้งแต่ 2GB เป็นต้นไป ใครมีประสบการณ์กับสิ่งนี้บ้าง เคล็ดลับ / ความคิดใด ๆ

4
ข้อมูลหลักเทียบกับ SQLite 3 [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องการอภิปรายการโต้แย้งการหยั่งเสียงหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ฉันคุ้นเคยกับฐานข้อมูลเชิงสัมพันธ์แล้วและเคยใช้SQLite (และฐานข้อมูลอื่น ๆ ) มาก่อน อย่างไรก็ตามCore Dataมีเสน่ห์บางอย่างดังนั้นฉันจึงพิจารณาใช้เวลาในการเรียนรู้เพื่อใช้ในแอปพลิเคชันถัดไปของฉัน มีประโยชน์มากในการใช้ข้อมูลหลักผ่าน SQLite หรือในทางกลับกัน? ข้อดี / ข้อเสียของแต่ละคนคืออะไร? ฉันพบว่ามันยากที่จะพิสูจน์ค่าใช้จ่ายในการเรียนรู้ Core Data เมื่อ Apple ไม่ได้ใช้กับแอพพลิเคชั่นหลักเช่น Mail.app หรือ iPhoto.app แทนที่จะเลือกใช้ฐานข้อมูล SQLite SQLite ยังใช้อย่างกว้างขวางบน iPhone ผู้ที่คุ้นเคยกับการใช้ความคิดเห็นทั้งสองเกี่ยวกับประสบการณ์ของพวกเขา? บางทีเช่นเดียวกับสิ่งส่วนใหญ่คำถามนั้นลึกซึ้งกว่าการใช้คำถามหนึ่งกับอีกคำถามหนึ่ง?
314 cocoa  macos  core-data  sqlite 

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