怎么在PostgreSQL数据库中保证像语句的效率

  介绍

本篇文章给大家分享的是有关怎么在PostgreSQL数据库中保证像语句的效率,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

<强>,实验环境

数据库环境:PostgreSQL 12.3,X86_64 ,

创建虚拟环境:

postgres=#, create  database  testdb01  owner  highgo;   CREATE 数据库   postgres=#, \ c  testdb01  highgo   ,   ,   testdb01=#, create  table  testliketb01  (userid  int  primary 关键,username  varchar (20), password  varchar (60), description 文本);   CREATE 表

为何保证测试效果更直观,我们使用随机数据填充一下该表

testdb01=#, insert  into  testliketb01  select  generate_series (500000), split_part(& # 39;张三,李四,王五,小明,小红& # 39;,& # 39;,& # 39;,(随机()* (5 - 1)+ 1)::int), md5((随机()* (5 - 1)+ 1)::varchar), split_part (& # 39; highgo highgo02, highgo03& # 39;, & # 39;, & # 39;,(随机()* (3 - 1)+ 1)::int);

,至此,虚拟数据创建完毕。

testdb01=#, select  *,得到testliketb01  limit  10;   | | userid  username ,,,,,,,,,,,, password ,,,,,,,,,,,, |,描述   - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - -   ,,,,,1,|,王五,,,,,|,4 f2bca371b42abd1403d5c20c4542dff  | highgo   ,,,,,2,|,李四,,,,,|,2 a978c605188770c5ed162889fff189e  | highgo02   ,,,,,3,|,李四,,,,,|,f5d129ab728b72ac6f663fe544bc7c16  | highgo   ,,,,,4,|,小明,,,,,|,53134 fa1022c58e65168b6aa1fbe5e39  | highgo02   ,,,,,5,|,王五,,,,,|,2 cf9abb2a8b676a626fa2c317d401ed8  | highgo02   ,,,,,6,|,王五,,,,,|,2247 a0cfda1f2819554d6e8e454622eb  | highgo02   ,,,,,7,|,张三,,,,,|,59 dfdc680c17533dfba1c72c9ce0bf76  | highgo02   ,,,,,8,|,王五,,,,,|,87 db4258236a3826259dcc3e7cb5fc63  | highgo02   ,,,,,9,|,王五,,,,,|,baaf7a2f7027df9aaeb665121432b6e2  | highgo02   ,,,,10,|,王五,,,,,|,2 f8fb36b3227c795b111b9bd5b031a76  | highgo02   (10,行)   此时数据库的状态:   testdb01=#, \ l + testdb01   ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,List  of 数据库   ,,Name ,, |, Owner , |, Encoding  |,,, Collate ,, |,,,, Ctype ,,, |, Access  privileges  |, Size , |, Tablespace  |,描述   - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - -   | | testdb01  highgo  UTF8 ,,,, |, en_US.UTF-8  |, en_US.UTF-8  |,,,,,,,,,,,,,,,,,,, |, 59, MB  | pg_default  |   (1,行)

,简单像语句查询:

testdb01=#, explain  analyze  select  *,得到testliketb01  where  username  like  & # 39;王% & # 39;;   ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,QUERY  PLAN ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,   -----------------------------------------------------------------------------------------------------------------------   Seq  Scan 提醒testliketb01 ,(成本=0.00,11405.00,行=125350,宽度=52),(actual 时间=0.014,177.571,行=124952,循环=1)   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么在PostgreSQL数据库中保证像语句的效率