當我知道主鍵時,檢查記錄是否存在的最快方法是什麼? select
,count
,filter
,where
還是別的?檢查記錄是否存在的最快方法
1
A
回答
1
你可以通過EXPLAIN QUERY PLAN來檢查你自己,它會告訴你成本&它打算爲特定查詢做什麼。
費用不會直接比較運行,但您應該瞭解是否有任何重大差異。
話雖這麼說,我希望COUNT(id) FROM table WHERE table.id="KEY"
可能是理想的,因爲它會利用任何部分查詢的能力(特別是在快像columnar databases亞馬遜的紅移)和主鍵索引。
1
當您使用count
時,即使數據庫找到記錄,也必須繼續搜索,因爲可能存在第二個記錄。 所以你應該搜索實際的記錄,並告訴數據庫在第一個之後停止。
當您要求從記錄中返回數據時,數據庫必須從表中讀取該數據。但是,如果可以通過在索引中查找ID來查找記錄,則該表訪問將是多餘的。 所以,你應該返回什麼,但你使用搜索ID:
SELECT id FROM MyTable WHERE id = ? LIMIT 1;
反正不是讀書當您使用存在,這是peewee簡單的實際數據和極限的表現:
SELECT EXISTS (SELECT * FROM MyTable WHERE id = ?);
MyTable.select().where(MyTable.id == x).exists()
相關問題
- 1. 檢查記錄是否存在於SQL表中的最快方法
- 2. 最快的「GENERIC」方法來檢查db中是否存在記錄?
- 3. C++,檢查文件是否存在的最快方法?
- 4. 檢查數據庫集中是否存在最快的方法
- 5. 檢查對象是否存在的最快方法
- 6. C更快的方法來檢查目錄是否存在
- 7. 檢查值存在的最快方法
- 8. 在插入.NET之前檢查記錄是否存在的最有效方法
- 9. 檢查內存是否歸零的最快方法
- 10. 最好的方法檢查是否存在記錄編輯器中的形式
- 11. Rails:檢查DB中是否存在新記錄的最有效方法
- 12. 如何檢查是否在數據庫中存在的記錄 - 最快的方法
- 13. 檢查表中是否存在記錄
- 14. 如何檢查記錄是否存在
- 15. 檢查記錄是否存在外鍵
- 16. php mysql檢查是否存在記錄
- 17. Cakephp檢查是否存在記錄
- 18. 檢查記錄是否存在SQL PhoneGap
- 19. 檢查是否存在記錄
- 20. rethinkdb檢查是否存在記錄
- 21. 檢查Dapper是否存在記錄ORM
- 22. 用實體框架檢查Oracle數據庫中是否存在記錄的最快方法6
- 23. 檢查WCF服務是否正在運行的最快方法
- 24. 什麼是檢查文件是否改變的最快方法?
- 25. 什麼是檢查mongodb文檔存在的最快方法?
- 26. 檢查數據庫表中的某些記錄的最快方法是什麼?
- 27. 這是檢查DyanmoDB表是否存在的最好方法嗎?
- 28. 什麼是檢查PDO是否存在的最佳方法
- 29. 檢查實體是否已經存在於數據庫中的最快方法?
- 30. 檢查大量文件中是否存在字符串的最快方法
'COUNT(ID)FROM表WHERE table.id =「KEY」'可能是理想的,因爲它會利用任何部分查詢的能力(特別快柱狀數據庫,如亞馬遜的紅移)和主鍵索引。 – TemporalWolf
最快的方法是在指定的選項中使用計數。爲了更加原始,通過維護用戶定義的哈希列表,直接從sqlite源使用sqlite3_column_count()。 – Jerry