让下表约有~100 000行:
CREATE TABLE `product_code` (
`value` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
`type` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
`product_id` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
我需要经常查询这个表,所以我想把结果集(作为数组)放在Redis或Memcached中。
我做了一些数学运算( utf-8是4个字节不是真的,看@Daan评论,4个字节仍然是一个悲观的猜测):
value
:( 1 * 4)+(64 * 4)= 388字节type
:( 1 * 4)+(16 * 4)= 68字节product_id
:( 1 * 4)+(32 * 4)= 132字节一行=最多588个字节,总计应为58800000字节= ~56MB +索引大小。这是对的吗?
但对我来说似乎太过分了,事实上我现在在该表中有大约50 000行,以下查询显示6864896字节= ~6.5 MB :
SELECT
DATA_LENGTH + INDEX_LENGTH AS size
FROM
information_schema.TABLES
where
TABLE_NAME = 'product_code'