为了更精准的收集统计信息 , 我们也可以在初始化或者创建数据库时将Collate设置为”C” , 这也是Postgresql数据中常用的优化手段 。我们来测试一下将Collate设置为”C”的效果:
testdb01=# create database testdb02 with TEMPLATE template0 LC_COLLATE=’C’ LC_CTYPE =’C’ owner highgo;
CREATE DATABASE
testdb02=# \l+ testdb02
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges | Size | Tablespace | Description
———-+——–+———-+———+——-+——————-+——-+————+————-
testdb02 | highgo | UTF8 | C | C | | 59 MB | pg_default |
(1 row)
testdb02=# create index idx_testliketb01_username on testliketb01(username);
CREATE INDEX
testdb02=# analyze testliketb01 ;
ANALYZE
testdb02=# analyze testliketb01 ;
ANALYZE
testdb02=# analyze testliketb01 ;
ANALYZE
testdb02=# explain analyze select * from testliketb01 where username like ‘王%’;
QUERY PLAN
————————————————————————————————————————————————-
Bitmap Heap Scan on testliketb01 (cost=2680.26..9410.67 rows=126033 width=52) (actual time=35.262..99.052 rows=124992 loops=1)
Filter: ((username)::text ~~ ‘王%’::text)
Heap Blocks: exact=5155
-> Bitmap Index Scan on idx_testliketb01_username (cost=0.00..2648.75 rows=126033 width=0) (actual time=33.920..33.920 rows=124992 loops=1)
Index Cond: (((username)::text >= ‘王’::text) AND ((username)::text < ‘玌’::text))
Planning Time: 0.276 ms
Execution Time: 111.578 ms
(7 rows)
结论:创建数据库时将Collate设置为”C” , 即便索引为普通索引 , LIKE语句也可以使用索引提升查询效率 。
优化建议:
1、初始化数据库或者创建数据库时将Collate设置为”C” 。
- 乳清蛋白和全脂奶粉哪种好 最好的中老年蛋白质粉排名
- 有没有什么养生的小茶方中草药 平时喝什么养生饮品最好
- 为什么用食指指着一个人的额头中心 按印堂的作用及好处
- 中医如何做到两者兼顾养生调理 阴虚和阳虚同时存在吃什么药
- 吃中药会推迟吗 延时中药配方
- 中医是如何治疗传染病的 八个偏方治好尿毒症
- 血氧仪|?家中有必要自备血氧仪制氧机吗 制氧机怎么选择
- 中医心理学与西方心理学差别在哪里 华夏心理咨询培训机构怎么样
- 中秋节的来历17个字 中秋节的来历
- 中医也无法根治糖尿病吗 糖尿病如何治疗哪种好用
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
