Primary-Key

id (在 TABLE 中)從 0 開始還是從 10000 開始有關係嗎

  • October 15, 2016

對不起,我的術語不正確(因為我不知道該怎麼稱呼它)..如果唯一(索引)鍵從 0 和即 100000 開始,這是否重要(就性能而言)?

例如,如果我有

ID     |  Brand
----------------
1      | BMW
2      | FERARRI

要麼

ID     |  Brand
----------------
100000 | BMW
100001 | FERARRI

性能/查詢會有什麼不同嗎?我這樣問是因為我有一個 PHP 函式可以刪除所有內容並插入新值。於是,delete/insert/delete/insert 導致ID越來越多,恐怕最終會遇到問題?或者這不是問題?

較小的值可能會稍微更有效。但是,如果您的程式碼非常高效,以至於您的較大瓶頸之一是整數鍵的大小,那麼您將遙遙領先於遊戲,並且幾乎沒有什麼可優化的了。

您正在使用的數據庫可能會使用不同數量的空間來儲存不同的數值,其中較小的數字往往使用較少的空間。不是每個數據庫都會這樣做,但有些會這樣做(例如,Oracle 使用可變數量的字節來表示不同的數字)。如果您的應用程序是這種情況,那麼具有較小鍵的行在磁碟上通常會更小,這意味著您可以在每個 I/O 請求中讀取更多行,在每個索引塊中容納更多鍵,並在每 kb RAM 中記憶體更多行。您可能會發現重新啟動密鑰將允許您為密鑰使用較小的數據類型,但這不太可能。所有這些都會有一些潛在的性能優勢。

也就是說,收益的規模可能很小。在大多數表中,主鍵的大小對行大小的貢獻很小,因此在鍵上節省一兩個字節可能會導致每個頁面/塊上的可用空間稍多,這會抵消性能優勢。即使您在每個頁面/塊上獲得更多數據,您也不太可能衡量改進。是的,您可能會稍微更有可能在記憶體中找到一行,但很難量化如此小的改進。

引用自:https://dba.stackexchange.com/questions/151626