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.
这被称为微优化而不是问题.
尽量只根据真实的经验而不是想象力来问(首先是你自己)表现问题.而分析始终是帮助区分彼此.
至于"300k max" - 在现实生活中,数字往往会出乎意料地增长.为什么要为自己挖一个陷阱?