create_index.out
来自「postgresql8.3.4源码,开源数据库」· OUT 代码 · 共 494 行 · 第 1/2 页
OUT
494 行
---- CREATE_INDEX-- Create ancillary data structures (i.e. indices)------ BTREE--CREATE INDEX onek_unique1 ON onek USING btree(unique1 int4_ops);CREATE INDEX onek_unique2 ON onek USING btree(unique2 int4_ops);CREATE INDEX onek_hundred ON onek USING btree(hundred int4_ops);CREATE INDEX onek_stringu1 ON onek USING btree(stringu1 name_ops);CREATE INDEX tenk1_unique1 ON tenk1 USING btree(unique1 int4_ops);CREATE INDEX tenk1_unique2 ON tenk1 USING btree(unique2 int4_ops);CREATE INDEX tenk1_hundred ON tenk1 USING btree(hundred int4_ops);CREATE INDEX tenk1_thous_tenthous ON tenk1 (thousand, tenthous);CREATE INDEX tenk2_unique1 ON tenk2 USING btree(unique1 int4_ops);CREATE INDEX tenk2_unique2 ON tenk2 USING btree(unique2 int4_ops);CREATE INDEX tenk2_hundred ON tenk2 USING btree(hundred int4_ops);CREATE INDEX rix ON road USING btree (name text_ops);CREATE INDEX iix ON ihighway USING btree (name text_ops);CREATE INDEX six ON shighway USING btree (name text_ops);-- test commentsCOMMENT ON INDEX six_wrong IS 'bad index';ERROR: relation "six_wrong" does not existCOMMENT ON INDEX six IS 'good index';COMMENT ON INDEX six IS NULL;---- BTREE ascending/descending cases---- we load int4/text from pure descending data (each key is a new-- low key) and name/f8 from pure ascending data (each key is a new-- high key). we had a bug where new low keys would sometimes be-- "lost".--CREATE INDEX bt_i4_index ON bt_i4_heap USING btree (seqno int4_ops);CREATE INDEX bt_name_index ON bt_name_heap USING btree (seqno name_ops);CREATE INDEX bt_txt_index ON bt_txt_heap USING btree (seqno text_ops);CREATE INDEX bt_f8_index ON bt_f8_heap USING btree (seqno float8_ops);---- BTREE partial indices--CREATE INDEX onek2_u1_prtl ON onek2 USING btree(unique1 int4_ops) where unique1 < 20 or unique1 > 980;CREATE INDEX onek2_u2_prtl ON onek2 USING btree(unique2 int4_ops) where stringu1 < 'B';CREATE INDEX onek2_stu1_prtl ON onek2 USING btree(stringu1 name_ops) where onek2.stringu1 >= 'J' and onek2.stringu1 < 'K';---- GiST (rtree-equivalent opclasses only)--CREATE INDEX grect2ind ON fast_emp4000 USING gist (home_base);CREATE INDEX gpolygonind ON polygon_tbl USING gist (f1);CREATE INDEX gcircleind ON circle_tbl USING gist (f1);CREATE TEMP TABLE gpolygon_tbl AS SELECT polygon(home_base) AS f1 FROM slow_emp4000;CREATE TEMP TABLE gcircle_tbl AS SELECT circle(home_base) AS f1 FROM slow_emp4000;CREATE INDEX ggpolygonind ON gpolygon_tbl USING gist (f1);CREATE INDEX ggcircleind ON gcircle_tbl USING gist (f1);SET enable_seqscan = ON;SET enable_indexscan = OFF;SET enable_bitmapscan = OFF;SELECT * FROM fast_emp4000 WHERE home_base @ '(200,200),(2000,1000)'::box ORDER BY (home_base[0])[0]; home_base ----------------------- (337,455),(240,359) (1444,403),(1346,344)(2 rows)SELECT count(*) FROM fast_emp4000 WHERE home_base && '(1000,1000,0,0)'::box; count ------- 2(1 row)SELECT count(*) FROM fast_emp4000 WHERE home_base IS NULL; count ------- 278(1 row)SELECT * FROM polygon_tbl WHERE f1 ~ '((1,1),(2,2),(2,1))'::polygon ORDER BY (poly_center(f1))[0]; f1 --------------------- ((2,0),(2,4),(0,0))(1 row)SELECT * FROM circle_tbl WHERE f1 && circle(point(1,-2), 1) ORDER BY area(f1); f1 --------------- <(1,2),3> <(1,3),5> <(1,2),100> <(100,1),115>(4 rows)SELECT count(*) FROM gpolygon_tbl WHERE f1 && '(1000,1000,0,0)'::polygon; count ------- 2(1 row)SELECT count(*) FROM gcircle_tbl WHERE f1 && '<(500,500),500>'::circle; count ------- 2(1 row)SET enable_seqscan = OFF;SET enable_indexscan = ON;SET enable_bitmapscan = ON;-- there's no easy way to check that these commands actually use-- the index, unfortunately. (EXPLAIN would work, but its output-- changes too often for me to want to put an EXPLAIN in the test...)SELECT * FROM fast_emp4000 WHERE home_base @ '(200,200),(2000,1000)'::box ORDER BY (home_base[0])[0]; home_base ----------------------- (337,455),(240,359) (1444,403),(1346,344)(2 rows)SELECT count(*) FROM fast_emp4000 WHERE home_base && '(1000,1000,0,0)'::box; count ------- 2(1 row)SELECT count(*) FROM fast_emp4000 WHERE home_base IS NULL; count ------- 278(1 row)SELECT * FROM polygon_tbl WHERE f1 ~ '((1,1),(2,2),(2,1))'::polygon ORDER BY (poly_center(f1))[0]; f1 --------------------- ((2,0),(2,4),(0,0))(1 row)SELECT * FROM circle_tbl WHERE f1 && circle(point(1,-2), 1) ORDER BY area(f1); f1 --------------- <(1,2),3> <(1,3),5> <(1,2),100> <(100,1),115>(4 rows)SELECT count(*) FROM gpolygon_tbl WHERE f1 && '(1000,1000,0,0)'::polygon; count ------- 2(1 row)SELECT count(*) FROM gcircle_tbl WHERE f1 && '<(500,500),500>'::circle; count ------- 2(1 row)RESET enable_seqscan;RESET enable_indexscan;RESET enable_bitmapscan;---- GIN over int[]--SET enable_seqscan = OFF;SET enable_indexscan = ON;SET enable_bitmapscan = ON;CREATE INDEX intarrayidx ON array_index_op_test USING gin (i);SELECT * FROM array_index_op_test WHERE i @> '{32}' ORDER BY seqno; seqno | i | t -------+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------ 6 | {39,35,5,94,17,92,60,32} | {AAAAAAAAAAAAAAA35875,AAAAAAAAAAAAAAAA23657} 74 | {32} | {AAAAAAAAAAAAAAAA1729,AAAAAAAAAAAAA22860,AAAAAA99807,AAAAA17383,AAAAAAAAAAAAAAA67062,AAAAAAAAAAA15165,AAAAAAAAAAA50956} 77 | {97,15,32,17,55,59,18,37,50,39} | {AAAAAAAAAAAA67946,AAAAAA54032,AAAAAAAA81587,55847,AAAAAAAAAAAAAA28620,AAAAAAAAAAAAAAAAA43052,AAAAAA75463,AAAA49534,AAAAAAAA44066} 89 | {40,32,17,6,30,88} | {AA44673,AAAAAAAAAAA6119,AAAAAAAAAAAAAAAA23657,AAAAAAAAAAAAAAAAAA47955,AAAAAAAAAAAAAAAA33598,AAAAAAAAAAA33576,AA44673} 98 | {38,34,32,89} | {AAAAAAAAAAAAAAAAAA71621,AAAA8857,AAAAAAAAAAAAAAAAAAA65037,AAAAAAAAAAAAAAAA31334,AAAAAAAAAA48845} 100 | {85,32,57,39,49,84,32,3,30} | {AAAAAAA80240,AAAAAAAAAAAAAAAA1729,AAAAA60038,AAAAAAAAAAA92631,AAAAAAAA9523}(6 rows)SELECT * FROM array_index_op_test WHERE i && '{32}' ORDER BY seqno; seqno | i | t -------+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------ 6 | {39,35,5,94,17,92,60,32} | {AAAAAAAAAAAAAAA35875,AAAAAAAAAAAAAAAA23657} 74 | {32} | {AAAAAAAAAAAAAAAA1729,AAAAAAAAAAAAA22860,AAAAAA99807,AAAAA17383,AAAAAAAAAAAAAAA67062,AAAAAAAAAAA15165,AAAAAAAAAAA50956} 77 | {97,15,32,17,55,59,18,37,50,39} | {AAAAAAAAAAAA67946,AAAAAA54032,AAAAAAAA81587,55847,AAAAAAAAAAAAAA28620,AAAAAAAAAAAAAAAAA43052,AAAAAA75463,AAAA49534,AAAAAAAA44066} 89 | {40,32,17,6,30,88} | {AA44673,AAAAAAAAAAA6119,AAAAAAAAAAAAAAAA23657,AAAAAAAAAAAAAAAAAA47955,AAAAAAAAAAAAAAAA33598,AAAAAAAAAAA33576,AA44673} 98 | {38,34,32,89} | {AAAAAAAAAAAAAAAAAA71621,AAAA8857,AAAAAAAAAAAAAAAAAAA65037,AAAAAAAAAAAAAAAA31334,AAAAAAAAAA48845} 100 | {85,32,57,39,49,84,32,3,30} | {AAAAAAA80240,AAAAAAAAAAAAAAAA1729,AAAAA60038,AAAAAAAAAAA92631,AAAAAAAA9523}(6 rows)SELECT * FROM array_index_op_test WHERE i @> '{17}' ORDER BY seqno; seqno | i | t -------+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------ 6 | {39,35,5,94,17,92,60,32} | {AAAAAAAAAAAAAAA35875,AAAAAAAAAAAAAAAA23657} 12 | {17,99,18,52,91,72,0,43,96,23} | {AAAAA33250,AAAAAAAAAAAAAAAAAAA85420,AAAAAAAAAAA33576} 15 | {17,14,16,63,67} | {AA6416,AAAAAAAAAA646,AAAAA95309} 19 | {52,82,17,74,23,46,69,51,75} | {AAAAAAAAAAAAA73084,AAAAA75968,AAAAAAAAAAAAAAAA14047,AAAAAAA80240,AAAAAAAAAAAAAAAAAAA1205,A68938} 53 | {38,17} | {AAAAAAAAAAA21658} 65 | {61,5,76,59,17} | {AAAAAA99807,AAAAA64741,AAAAAAAAAAA53908,AA21643,AAAAAAAAA10012} 77 | {97,15,32,17,55,59,18,37,50,39} | {AAAAAAAAAAAA67946,AAAAAA54032,AAAAAAAA81587,55847,AAAAAAAAAAAAAA28620,AAAAAAAAAAAAAAAAA43052,AAAAAA75463,AAAA49534,AAAAAAAA44066} 89 | {40,32,17,6,30,88} | {AA44673,AAAAAAAAAAA6119,AAAAAAAAAAAAAAAA23657,AAAAAAAAAAAAAAAAAA47955,AAAAAAAAAAAAAAAA33598,AAAAAAAAAAA33576,AA44673}(8 rows)SELECT * FROM array_index_op_test WHERE i && '{17}' ORDER BY seqno; seqno | i | t -------+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------ 6 | {39,35,5,94,17,92,60,32} | {AAAAAAAAAAAAAAA35875,AAAAAAAAAAAAAAAA23657} 12 | {17,99,18,52,91,72,0,43,96,23} | {AAAAA33250,AAAAAAAAAAAAAAAAAAA85420,AAAAAAAAAAA33576} 15 | {17,14,16,63,67} | {AA6416,AAAAAAAAAA646,AAAAA95309} 19 | {52,82,17,74,23,46,69,51,75} | {AAAAAAAAAAAAA73084,AAAAA75968,AAAAAAAAAAAAAAAA14047,AAAAAAA80240,AAAAAAAAAAAAAAAAAAA1205,A68938} 53 | {38,17} | {AAAAAAAAAAA21658} 65 | {61,5,76,59,17} | {AAAAAA99807,AAAAA64741,AAAAAAAAAAA53908,AA21643,AAAAAAAAA10012} 77 | {97,15,32,17,55,59,18,37,50,39} | {AAAAAAAAAAAA67946,AAAAAA54032,AAAAAAAA81587,55847,AAAAAAAAAAAAAA28620,AAAAAAAAAAAAAAAAA43052,AAAAAA75463,AAAA49534,AAAAAAAA44066} 89 | {40,32,17,6,30,88} | {AA44673,AAAAAAAAAAA6119,AAAAAAAAAAAAAAAA23657,AAAAAAAAAAAAAAAAAA47955,AAAAAAAAAAAAAAAA33598,AAAAAAAAAAA33576,AA44673}(8 rows)SELECT * FROM array_index_op_test WHERE i @> '{32,17}' ORDER BY seqno; seqno | i | t -------+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------ 6 | {39,35,5,94,17,92,60,32} | {AAAAAAAAAAAAAAA35875,AAAAAAAAAAAAAAAA23657} 77 | {97,15,32,17,55,59,18,37,50,39} | {AAAAAAAAAAAA67946,AAAAAA54032,AAAAAAAA81587,55847,AAAAAAAAAAAAAA28620,AAAAAAAAAAAAAAAAA43052,AAAAAA75463,AAAA49534,AAAAAAAA44066} 89 | {40,32,17,6,30,88} | {AA44673,AAAAAAAAAAA6119,AAAAAAAAAAAAAAAA23657,AAAAAAAAAAAAAAAAAA47955,AAAAAAAAAAAAAAAA33598,AAAAAAAAAAA33576,AA44673}(3 rows)SELECT * FROM array_index_op_test WHERE i && '{32,17}' ORDER BY seqno; seqno | i | t -------+---------------------------------+------------------------------------------------------------------------------------------------------------------------------------ 6 | {39,35,5,94,17,92,60,32} | {AAAAAAAAAAAAAAA35875,AAAAAAAAAAAAAAAA23657} 12 | {17,99,18,52,91,72,0,43,96,23} | {AAAAA33250,AAAAAAAAAAAAAAAAAAA85420,AAAAAAAAAAA33576} 15 | {17,14,16,63,67} | {AA6416,AAAAAAAAAA646,AAAAA95309} 19 | {52,82,17,74,23,46,69,51,75} | {AAAAAAAAAAAAA73084,AAAAA75968,AAAAAAAAAAAAAAAA14047,AAAAAAA80240,AAAAAAAAAAAAAAAAAAA1205,A68938} 53 | {38,17} | {AAAAAAAAAAA21658} 65 | {61,5,76,59,17} | {AAAAAA99807,AAAAA64741,AAAAAAAAAAA53908,AA21643,AAAAAAAAA10012} 74 | {32} | {AAAAAAAAAAAAAAAA1729,AAAAAAAAAAAAA22860,AAAAAA99807,AAAAA17383,AAAAAAAAAAAAAAA67062,AAAAAAAAAAA15165,AAAAAAAAAAA50956} 77 | {97,15,32,17,55,59,18,37,50,39} | {AAAAAAAAAAAA67946,AAAAAA54032,AAAAAAAA81587,55847,AAAAAAAAAAAAAA28620,AAAAAAAAAAAAAAAAA43052,AAAAAA75463,AAAA49534,AAAAAAAA44066} 89 | {40,32,17,6,30,88} | {AA44673,AAAAAAAAAAA6119,AAAAAAAAAAAAAAAA23657,AAAAAAAAAAAAAAAAAA47955,AAAAAAAAAAAAAAAA33598,AAAAAAAAAAA33576,AA44673} 98 | {38,34,32,89} | {AAAAAAAAAAAAAAAAAA71621,AAAA8857,AAAAAAAAAAAAAAAAAAA65037,AAAAAAAAAAAAAAAA31334,AAAAAAAAAA48845}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?