这个问题很小白:
假如创建一个表 :create table T (A int4,B int4,C varchar)
在表上做这样的查询:select C from T where A=a AND B=b;
如何在A,B上创建单列和多列索引!
我对单列和多列概念不是很清晰!
假如创建一个表 :create table T (A int4,B int4,C varchar)
在表上做这样的查询:select C from T where A=a AND B=b;
如何在A,B上创建单列和多列索引!
我对单列和多列概念不是很清晰!
(1)在x和y上个创建一个单列索引。当处理同时引用x和y的查询时,可以同时扫描x和y上的索引,然后对两个扫描结果求交集。(2)可以选择在x 和y上创建一个多列索引,这个索引对于同时引用x和y的查询很有用,它也可以用于只引用x的查询,但它对于只引用y的查询却没有什么用处。(3)在y上创建一个单列索引,同时在x和y上创建一个多列索引。这种方式创建的索引比较多,要消耗较多的资源维护索引和表中数据的同步。(4)在x和y上各创建一个单列索引,同时在x和y上创建一个多列索引。这种方式创建的索引过多,要消耗大量资源维护索引和表中数据的同步。
然后根据2个字段去掉重复的 SELECT 1 FROM TABLE ORDER BY A ,B 出来9W跳
但是我看了一下 时间 感觉建了索引还是慢!(不知道有没有命中,等一下看看解释)
所以就开始研究索引!