应该可以的 你explain一下, 按理说应该会出现 index cond (xxx >='浙江大学' and xxx<='浙江大X')如果没出现: 可能是其他原因, 1,收集状态失效, (用analyze重新收集) 2,服务端字符集被设为SQLASCII
EXPLAIN ANALYZE select name from point_01022 where name like'先锋科技'; 结果是: Index Scan using pointhz_name_index on point_01022 (cost=0.00..8.29 rows=1 width=25) (actual time=0.155..0.157 rows=1 loops=1) Index Cond: ((name)::text = '先锋科技'::text) Filter: ((name)::text ~~ '先锋科技'::text) Total runtime: 0.185 ms (4 行记录)EXPLAIN ANALYZE select name from point_01022 where name like'先锋科技%'; --多了 % 结果是: Seq Scan on point_01022 (cost=0.00..2974.95 rows=10 width=25) (actual time=75.226..82.462 rows=2 loops=1) Filter: ((name)::text ~~ '先锋科技%'::text) Total runtime: 82.517 ms (3 行记录)
你explain一下, 按理说应该会出现 index cond (xxx >='浙江大学' and xxx<='浙江大X')如果没出现: 可能是其他原因,
1,收集状态失效, (用analyze重新收集)
2,服务端字符集被设为SQLASCII
结果是:
Index Scan using pointhz_name_index on point_01022 (cost=0.00..8.29 rows=1 width=25) (actual time=0.155..0.157 rows=1 loops=1)
Index Cond: ((name)::text = '先锋科技'::text)
Filter: ((name)::text ~~ '先锋科技'::text)
Total runtime: 0.185 ms
(4 行记录)EXPLAIN ANALYZE select name from point_01022 where name like'先锋科技%'; --多了 %
结果是:
Seq Scan on point_01022 (cost=0.00..2974.95 rows=10 width=25) (actual time=75.226..82.462 rows=2 loops=1)
Filter: ((name)::text ~~ '先锋科技%'::text)
Total runtime: 82.517 ms
(3 行记录)