提交訂單效能優化系列之017-資料庫ID為int(10)型別與long(20)型別的對比
阿新 • • 發佈:2018-12-13
概括總結
int(10)
型別的效能比long(20)
型別的效能好4.01%
(差別不明顯)。
017版本更新說明
這一版本有兩個SQL檔案:
另外一個比較重要的改動是,之前的版本是測試10次,然後取平均值;這次的版本是測試12次,去掉一個高大值,去掉一個最小值,然後取平均值。
測試結果
統計10次測試的平均值之後:
Version017IntegerId
提交每個訂單平均耗時的納秒數: 4250404
Version017LongId
提交每個訂單平均耗時的納秒數: 4086353
Version017IntegerId
每秒鐘可以提交的訂單數: 235
Version017LongId
每秒鐘可以提交的訂單數: 244
效能差別為:(4250404 - 4086353) / 4086353 * 100% = 4.01%,即 “int(10)型別” 比 “long(20)型別” 效能好4.01%
。
【備註】:不同的機器上的測試結果會不一樣,以上測試結果僅供參考。
測試結果說明
int
的效能比long
好,這個是可以理解的,一個佔4位元組,一個佔8位元組。但是從這個例子來看,對效能的影響並不大。當然,能用int
還是推薦用int
。
資料庫自增ID設定為int(10)
型別時,最多可以儲存100億
條資料,而設定為long(20)
型別時,最多可以儲存100億 * 100億
條資料。但是對於單個數據庫來說,100億
條資料已經是相當大的數了,大部分場景下都應該夠用了。
做這個測試是因為我們公司一直以來都是用的long(20)
,作為一個慣例保留下來了。這次想測一測到底有沒有效能差別,目前來看,差異並不明顯。但是這次測試的資料量比較小,也許差別在資料量大了之後才能體現出來,所以以後可能還會再測試一次資料量大的。