簡體   English   中英

Mysql medium int與int performance

[英]Mysql medium int vs. int performance

我有一個簡單的用戶表,我想我將擁有的最大用戶是300,000。

目前我正在使用:

 CREATE TABLE users
 (
         id INT UNSIGNED AUTOINCREMENT PRIMARY KEY,
         ....

當然我有很多其他用戶(id)是FOREIGN KEY的表。

我讀到,因為id不會使用INT的最大值,所以最好使用:MEDIUMINT,它會提供更好的性能。

這是真的嗎?

(我在Windows Server 2008上使用mysql)

我會考慮在300K行上使用MEDIUMINT .. MEDIUMINT給你足夠的空間,最多16M行(無符號)。

當你使用索引時,它不僅僅是“較小的表大小”..在27M行表上差異可能很大..從INT到MEDIUMINT的2列更改為我節省了1GB(索引+表數據)所以它從2.5GB開始到1.5 GB。

這被稱為微優化而不是問題。
盡量只根據真實的經驗而不是想象力來問(首先是你自己)表現問題。 分析總是有助於區分彼此。

至於“300k max” - 在現實生活中,數字往往會出乎意料地增長。 為什么要為自己挖一個陷阱?

不應該有性能差異,唯一的優勢是表格尺寸略小。 無論如何,對於300'000行,您不必關心。

如果您關心速度微優化,那么使用int

磁盤讀訪問將讀取一個字節塊,因此讀取4個字節將與讀取3個字節相同。

但由於3個字節的整數對於CPU來說不是原生的, mediumint需要先轉換mediumint才能使用(memcpy為4/8字節整數),從而導致開銷,而4字節整數對於CPU來說是原生的,可以直接使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM