table design:
表结构做成 id, key, value 还是 key, value 比较好。
按照 Bret Taylor 的分享,比较好的设计是
- added_id -> INT NOT NULL AUTO_INCREMENT PRIMARY KEY
- id -> UNIQUE KEY
- updated -> KEY
- body -> json
之所以加上自增的 added_id, 是因为 Mysql InnoDB 是按照主键顺序在磁盘上顺序存储 数据的。这样就能保证新数据总是能写在旧数据的后面,因为新数据读取的频率总会高于 旧数据,磁头不会波动太大。
e.g.
CREATE TABLE entities (
added_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
id CHAR(32) NOT NULL,
updated DATETIME NOT NULL,
body MEDIUMBLOB,
UNIQUE KEY (id),
KEY (updated)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
notes:
- id -> uuid4.hex
参考
How FriendFeed uses MySQL to store schema-less data http://backchannel.org/blog/friendfeed-schemaless-mysql
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式