uuid与serial 在TDSQL PG中性能对比

最近更新时间: 2024-06-12 15:06:00

  • uuid插入1万条数据。

     postgres=#  \d+ t_uuid 
                                                  Table "public.t_uuid"
      Column |          Type          |              Modifiers              | Storage  | Stats target | Description 
     --------+------------------------+-------------------------------------+----------+--------------+-------------
      f1     | uuid                   | not null default uuid_generate_v1() | plain    |              | 
      f2     | character varying(256) |                                     | extended |              | 
     Has OIDs: no
     Distribute By SHARD(f2)
             Location Nodes: ALL DATANODES
    
     postgres=# insert into t_uuid(f2) select t from generate_series(1,1000000) as t;
     INSERT 0 1000000
     Time: 4869.140 ms (00:04.869) 
  • serial插入1万条数据。

     postgres=# \d+ t_serial
                                                          Table "public.t_serial"
      Column |          Type          |                       Modifiers                       | Storage  | Stats target | Description 
     --------+------------------------+-------------------------------------------------------+----------+--------------+-------------
      f1     | integer                | not null default nextval('t_serial_f1_seq'::regclass) | plain    |              | 
      f2     | character varying(256) |                                                       | extended |              | 
     Has OIDs: no
     Distribute By SHARD(f1)
             Location Nodes: ALL DATANODES
    
     postgres=#  insert into t_serial(f2) select t from generate_series(1,1000000) as t;      
     INSERT 0 1000000
     Time: 3683.533 ms (00:03.684)
  • uuid pgbench结果。

     pghost: 172.16.0.42 pgport: 11016 nclients: 32 duration: 600 dbName: postgres
     transaction type: insert_t_uuid.sql
     scaling factor: 1
     query mode: prepared
     number of clients: 32
     number of threads: 1
     duration: 600 s
     number of transactions actually processed: 531667
     latency average = 36.166 ms
     tps = 884.807291 (including connections establishing)
     tps = 884.813103 (excluding connections establishing)
     script statistics:
      - statement latencies in milliseconds:
              0.013  \set id random(1, 10000000)
             36.094  insert into t_uuid(f2) values(:id::text) ;
  • erial pgbench结果。

     transaction type: insert_t_serial.sql
     scaling factor: 1
     query mode: prepared
     number of clients: 32
     number of threads: 1
     duration: 600 s
     number of transactions actually processed: 493799
     latency average = 38.889 ms
     tps = 822.864578 (including connections establishing)
     tps = 822.869984 (excluding connections establishing)
     script statistics:
      - statement latencies in milliseconds:
              0.013  \set id random(1, 10000000)
             38.861  insert into t_serial(f2) values(:id::text) ;
  • 测试数据对比 。

    uuid用时 Serial用时 百分比 Uuid pgbench Serial pgbench 百分比
    4.869s 3.684s 75.66% 884 822 92.98%