如果我在 SQLite 表上有一個單列整數 PK - 我需要創建顯式索引還是由引擎處理?
字串/文本單欄位 PK 的相同問題
uj5u.com熱心網友回復:
從UNIQUE 約束:
在大多數情況下,UNIQUE 和 PRIMARY KEY 約束是通過在資料庫中創建唯一索引來實作的。(WITHOUT ROWID 表上的 INTEGER PRIMARY KEY 和 PRIMARY KEY 除外。)
如果列被定義為INTEGER PRIMARY KEY它實際上是列的rowid的別名:
rowid 表的資料存盤為 B 樹結構,每個表行包含一個條目,使用 rowid 值作為鍵。這意味著按 rowid 檢索或排序記錄很快。搜索具有特定 rowid 的記錄或具有指定范圍內的 rowid 的所有記錄的速度大約是通過指定任何其他 PRIMARY KEY 或索引值進行的類似搜索的兩倍。上面提到的例外是,如果宣告型別為“INTEGER”的列的宣告包含“PRIMARY KEY DESC”子句,則它不會成為 rowid 的別名,也不會被歸類為整數主鍵。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/368725.html
標籤:sqlite
上一篇:禁止在SQLite中插入不在rowid中的整數(保持有向無環圖表一致)
下一篇:PHP:當使用get_template_part加載php部分時,如何用...包裝每個部分并打開/關閉此包裝器以進行除錯
