我有一個SQLite數據庫,並使用INSERT OR IGNORE
查詢。我有一個自動增量int作爲主鍵和另一個獨特的列表。我的問題是,SQLite如何檢查記錄是否已經存在,以便它知道是否忽略它?它是首先掃描主鍵,然後掃描其他唯一列嗎?如果是這樣,它有可能比較主鍵之前的唯一列進行某些查詢嗎?另外,如果一列是唯一的,它是否已經編入索引?SQL如何檢查記錄是否存在?
2
A
回答
2
UNIQUE約束是使用索引實現的,所以UNIQUE列已經編入索引。
當評估INSERT或忽略,如果表中的任何 UNIQUE約束將通過INSERT語句被侵犯時,或忽略代替。從功能角度來看,評估的順序並不重要,應該對性能產生很小的影響。據推測,評估順序是由查詢優化器處理的,但如果不是,性能命中率應該很小。
1
根據您想有多深去,我可能會建議downloading the SQLite3 source code,並開始通過它來搜索諸如「唯一」和「約束」條件 - 通過在剛剛源讀取可以提供一些回答您的問題幾分鐘。
該代碼似乎是異常詳細記錄。如果您打算大量使用SQLite,至少閱讀所提供的註釋並不是一個壞主意。我敢打賭,你可能會從中得到更多的洞察力。
+0
感謝您的建議。通常通過代碼搜索,由於缺乏任何體面的文檔,我感到困惑。將通過這一看看,但其他有趣的提示。 – TryNCode
相關問題
- 1. 檢查記錄是否存在SQL PhoneGap
- 2. 如何檢查記錄是否存在
- 3. 如何檢查使用vb.net和SQL Server是否存在記錄
- 4. 如何使用SQL檢查記錄是否存在?
- 5. 嵌入式SQL,如何檢查是否存在記錄
- 6. 如何檢查sql表中是否存在一條記錄?
- 7. SQL:如何正確檢查是否存在記錄
- 8. 檢查表中是否存在記錄
- 9. 檢查記錄是否存在外鍵
- 10. php mysql檢查是否存在記錄
- 11. Cakephp檢查是否存在記錄
- 12. 檢查是否存在記錄
- 13. rethinkdb檢查是否存在記錄
- 14. 檢查Dapper是否存在記錄ORM
- 15. PHP中用於檢查記錄是否存在的SQL查詢
- 16. SQL「是否存在記錄」
- 17. 如何使用sql查詢有效檢查記錄是否存在?
- 18. 如何檢查SQL數據庫表以查看是否存在記錄
- 19. 如何檢查目錄是否存在?
- 20. Openquery SQL如何檢查是否存在?
- 21. 如何檢查是否存在記錄,如果不插入
- 22. 檢查Sql中是否存在一條記錄C#
- 23. SQL服務器 - 檢查特定值的記錄是否存在
- 24. SQL - 檢查記錄是否存在於多個表中
- 25. 檢查列sql中的記錄是否存在
- 26. Android SQL:檢查數據庫中是否存在記錄
- 27. 檢查SQL Server表中是否存在使用functoids的記錄
- 28. 如何在ssis中檢查是否存在記錄
- 29. 如何檢查在Access數據庫中是否存在記錄
- 30. 404如果沒有找到記錄 - 如何檢查記錄是否存在?
謝謝,我不確定是否會有顯着的性能差異。 – TryNCode