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 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式