fairyguo 发表于 2016-10-28 10:42:37

MongoDB 3.3.13 发布,分布式文档存储数据库

MongoDB: 关系中最KV的,KV中最关系的存储系统.  
  那问题来了,MySQL就不能K/V么?
  用MySQL内存表实现K/V存储也可以,设置3个字段,分别为键/值/时间,比如:
  CREATE TABLE IF NOT EXISTS mem (
  k varchar(32) NOT NULL,
  v text NOT NULL,
  t bigint(20) unsigned NOT NULL,
  PRIMARY KEY (k) USING HASH,
  KEY (t) USING HASH
  ) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
  INSERT INTO mem (k, v, t) VALUES ('key1', 'value1', '20160906173140');
  INSERT INTO mem (k, v, t) VALUES ('key2', 'value2', '20160906173140');
  时间格式时date('YmdHis'),添加索引,用于检索.
  8个字节的bigint(20)比14*3个字节的char(14)省空间.
  键最长为32个字符,超过大小可以编码为MD5后存储.
  值最长为floor((65535-2)/3)=21844个utf8字符,
  这是因为text类型最多存储65535字节的文本字段,
  存储时在内容前使用2字节表示内容的字节数.
  除以3是因为一个utf8字符占用3个字节.
  floor为向下取整.
页: [1]
查看完整版本: MongoDB 3.3.13 发布,分布式文档存储数据库