Mysql medium int与int performance

avi*_*viv 6 mysql datatable performance

我有一个简单的用户表,我想我将拥有的最大用户是300,000.

目前我正在使用:

 CREATE TABLE users
 (
         id INT UNSIGNED AUTOINCREMENT PRIMARY KEY,
         ....
Run Code Online (Sandbox Code Playgroud)

当然我有很多其他用户(id)是FOREIGN KEY的表.

我读到,因为id不会使用INT的最大值,所以最好使用:MEDIUMINT,它会提供更好的性能.

这是真的吗?

(我在Windows Server 2008上使用mysql)

小智 10

我会考虑在300K行上使用MEDIUMINT .. MEDIUMINT给你足够的空间,最多16M行(无符号).

当你使用索引时,它不仅仅是"较小的表大小"..在27M行表上差异可能很大..从INT到MEDIUMINT的2列更改为我节省了1GB(索引+表数据)所以它从2.5GB开始到1.5 GB.


You*_*nse 5

这被称为微优化而不是问题.
尽量只根据真实的经验而不是想象力来问(首先是你自己)表现问题.而分析始终是帮助区分彼此.

至于"300k max" - 在现实生活中,数字往往会出乎意料地增长.为什么要为自己挖一个陷阱?