Skip to content

使用索引

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";
Clone this wiki locally