-
Notifications
You must be signed in to change notification settings - Fork 80
使用索引
jaywong85 edited this page Jul 23, 2013
·
1 revision
CREATE INDEX
CREATE index PhotosByTime on Photo(user_id,time); CREATE index PhotosByTag on Photo(tag); //为了便于用户查找的时候提升性能,增加了辅助存储的索引模式,也就是在索引中存储一定的实体字段,这个字段由用户自己指定,示例如下: CREATE index PhotosByTag on Photo(tag) STORING(thumbnail_url); CREATE index PhotosByTime on Photo(user_id,time desc);//指定time字段降序存储,也就是用户默认可以获得最新的图片,如果不指定序则字段的序默认为升序。 //注意:只有datetime类型才可以设置 升/降序
DROP INDEX
DROP INDEX PhotosByTime ON Photo;
SHOW INDEXES
SHOW INDEXES IN Photo; SHOW INDEXES FROM Photo;
用户须知: 1 当前版本支持构建索引的查询,即,没有构建索引的查询在本版本中尚不支持 2 目前支持到最后一个字段的范围查询,即该字段必须为数值类型或时间类型 3 参见MySQL索引,使用索引时请与构建索引的顺序相关,顺序不一致,及时字段匹配也无法找到索引 4 查询时请注意带入自己的均衡字段,如果不带入均衡字段后台会使用全局查询进而无法保证系统的ACID 5 辅助存储的使用会带来读取时的性能提升,但会有一定程度的降低写入时的性能,用户的使用需要根据业务场景选择使用 用例: DDL篇章中介绍了,表photo的均衡字段跟父表user为同一个均衡字段为user_id,用户想按照时间查找某个user_id的photo的url,并且希望是降序排列
create index PhotosByTime on Photo(user_id,time desc); select thumbnail_url from photo where user_id="xx" and time>"2012-12-12 12:00:00" and time<"2013-1-12 12:00:00"; 优化: create index PhotosByTime on Photo(user_id,time desc) STORING(thumbnail_url); select thumbnail_url from photo where user_id="xx" and time>"2012-12-12 12:00:00" and time<"2013-1-12 12:00:00";