· 8 years ago · Mar 10, 2018, 11:42 AM
1miss
2----------------
3
4object_uuid_bin ㌠not null ãªã®ã§ã€è‡ªå‹•çš„ã«ã“ã®ã‚«ãƒ©ãƒ ㌠primary key ã«ãªã‚Šã¾ã™ã><
5
6ãªã®ã§ã€
7 UNIQUE KEY `object_uuid_bin` (`object_uuid_bin`),
8ã¨
9 PRIMARY KEY `object_uuid_bin` (`object_uuid_bin`),
10ã®æ¯”較ã¯ç„¡æ„味ã§ã™ã€‚
11
12比較ã™ã‚‹ãªã‚‰ object_uuid_bin ã‹ã‚‰ NOT NULL を外ã•ãªã„ã¨ã€‚
13
14schema
15----------------
16
17 DROP TABLE IF EXISTS `object`;
18 CREATE TABLE `object` (
19 `user_id` int(10) unsigned NOT NULL,
20 `object_uuid_bin` binary(16) NOT NULL,
21 `epoch_time1` int(10) unsigned NOT NULL,
22 `epoch_time2` int(10) unsigned NOT NULL DEFAULT '0',
23 `flag1` tinyint(3) unsigned NOT NULL,
24 `flag2` tinyint(3) unsigned NOT NULL,
25 `flag3` tinyint(3) unsigned NOT NULL,
26 UNIQUE KEY `object_uuid_bin` (`object_uuid_bin`),
27 KEY `idx_1` (`user_id`,`epoch_time1`),
28 KEY `idx_2` (`user_id`,`epoch_time2`)
29 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
30
31
32テーブルã®ç‰¹å¾´
33----------------
34
35 * ã‚りã¨ã‚«ãƒ©ãƒ ãŒå¤šã„
36 * 普通ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ãŒè¤‡æ•°(ã“ã®å ´åˆã¯2ã¤)ã‚ã‚‹
37
38アクセスパターン
39----------------
40
41 1. unique key ã§è¤‡æ•°(50個)指定
42
43 select * from object where object_uuid_bin in (..., ..., ...);
44
45 2. 普通ã®ã‚ーã§ä¸€æœ¬é‡£ã‚Š
46
47 select * from object where user_id = '?' order by epoch_time1 desc limit 50;