1. 程式人生 > >提交訂單效能優化系列之017-資料庫ID為int(10)型別與long(20)型別的對比

提交訂單效能優化系列之017-資料庫ID為int(10)型別與long(20)型別的對比

概括總結

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),作為一個慣例保留下來了。這次想測一測到底有沒有效能差別,目前來看,差異並不明顯。但是這次測試的資料量比較小,也許差別在資料量大了之後才能體現出來,所以以後可能還會再測試一次資料量大的。

原始碼