当前位置:网站首页>2022-07-05 use TPCC to conduct sub query test on stonedb

2022-07-05 use TPCC to conduct sub query test on stonedb

2022-07-06 22:27:00 Emperor Zunwu world

Catalog

Abstract :

tpcc:

One . compile

Two . establish tpcc library

3、 ... and .  Import the table structure of the modified engine :

Four .  Import data

5、 ... and . Perform the test :

6、 ... and . Test data :

Subquery :

Query statement :

stonedb Execution results :

contrast mysql Of innodb engine :


Abstract :

Record the use of tpcc Yes stonedb Conduct pressure measurement process

tpcc:

One . compile

git clone https://github.com/Percona-Lab/tpcc-mysql.git
cd tpcc-mysql/src
make
cd ..
# Because we are testing STONEDB engine , So it needs to be modified create_table.sql The table structure engine inside is Atomstore
vim create_table.sql
:%s/InnoDB/STONEDB/g

Two . establish tpcc library

mysql  -e “create database tpcc”

3、 ... and .  Import the table structure of the modified engine :

mysql tpcc < create_table.sql

Four .  Import data

ln -s /stonedb56/install/tmp/mysql.sock   /var/lib/mysql/mysql.sock
./tpcc_load -h localhost -d tpcc -u root  -P 3306 -w 10

5、 ... and . Perform the test :

./tpcc_start -h localhost -d tpcc -u root -P 3306 -w 10 -c32 -r10 -l60

6、 ... and . Test data :


MEASURING START.

  10, trx: 0, 95%: 0.000, 99%: 0.000, max_rt: 0.000, 0|0.000, 0|0.000, 0|0.000, 0|0.000
  20, trx: 0, 95%: 0.000, 99%: 0.000, max_rt: 0.000, 0|0.000, 0|0.000, 0|0.000, 0|0.000
  30, trx: 0, 95%: 0.000, 99%: 0.000, max_rt: 0.000, 0|0.000, 0|0.000, 0|0.000, 0|0.000
  40, trx: 0, 95%: 0.000, 99%: 0.000, max_rt: 0.000, 0|0.000, 0|0.000, 0|0.000, 0|0.000
  50, trx: 0, 95%: 0.000, 99%: 0.000, max_rt: 0.000, 0|0.000, 0|0.000, 0|0.000, 0|0.000
  60, trx: 0, 95%: 0.000, 99%: 0.000, max_rt: 0.000, 0|0.000, 0|0.000, 0|0.000, 0|0.000

STOPPING THREADS

<Raw Results>
  [0] sc:0 lt:0  rt:0  fl:0 avg_rt: -nan (5)
  [1] sc:0 lt:0  rt:0  fl:0 avg_rt: -nan (5)
  [2] sc:0 lt:0  rt:0  fl:0 avg_rt: -nan (5)
  [3] sc:0 lt:0  rt:0  fl:0 avg_rt: -nan (80)
  [4] sc:0 lt:0  rt:0  fl:0 avg_rt: -nan (20)
 in 60 sec.

<Raw Results2(sum ver.)>
  [0] sc:0  lt:0  rt:0  fl:0 
  [1] sc:0  lt:0  rt:0  fl:0 
  [2] sc:0  lt:0  rt:0  fl:0 
  [3] sc:0  lt:0  rt:0  fl:0 
  [4] sc:0  lt:0  rt:0  fl:0 

<Constraint Check> (all must be [OK])
 [transaction percentage]
        Payment: -nan% (>=43.0%) [NG] *
   Order-Status: -nan% (>= 4.0%) [NG] *
       Delivery: -nan% (>= 4.0%) [NG] *
    Stock-Level: -nan% (>= 4.0%) [NG] *
 [response time (at least 90% passed)]
      New-Order: -nan%  [NG] *
        Payment: -nan%  [NG] *
   Order-Status: -nan%  [NG] *
       Delivery: -nan%  [NG] *
    Stock-Level: -nan%  [NG] *

<TpmC>
                 0.000 TpmC

Subquery :

Query statement :

select
    o_carrier_id,
    count(*) as order_count
from
    orders
where
    o_entry_d >= date '1993-07-01'
    and o_entry_d < date '2022-07-06' + interval '3' month
    and exists (
        select
            *
        from
            item
        where
            i_name = i_data
            or i_id > i_price
    )
group by
    o_carrier_id
order by
    o_carrier_id;

stonedb Execution results :

mysql> select
    ->     o_carrier_id,
    ->     count(*) as order_count
    -> from
    ->     orders
    -> where
    ->     o_entry_d >= date '1993-07-01'
    ->     and o_entry_d < date '2022-07-06' + interval '3' month
    ->     and exists (
    ->         select
    ->             *
    ->         from
    ->             item
    ->         where
    ->             i_name = i_data
    ->             or i_id > i_price
    ->     )
    -> group by
    ->     o_carrier_id
    -> order by
    ->     o_carrier_id;
+--------------+-------------+
| o_carrier_id | order_count |
+--------------+-------------+
|         NULL |       90000 |
|            1 |       21113 |
|            2 |       20850 |
|            3 |       20965 |
|            4 |       20854 |
|            5 |       21050 |
|            6 |       21123 |
|            7 |       21028 |
|            8 |       21062 |
|            9 |       21015 |
|           10 |       20940 |
+--------------+-------------+
11 rows in set (0.26 sec)

mysql> explain select
    ->     o_carrier_id,
    ->     count(*) as order_count
    -> from
    ->     orders
    -> where
    ->     o_entry_d >= date '1993-07-01'
    ->     and o_entry_d < date '2022-07-06' + interval '3' month
    ->     and exists (
    ->         select
    ->             *
    ->         from
    ->             item
    ->         where
    ->             i_name = i_data
    ->             or i_id > i_price
    ->     )
    -> group by
    ->     o_carrier_id
    -> order by
    ->     o_carrier_id \G
*************************** 1. row ***************************
           id: 1
  select_type: PRIMARY
        table: NULL
         type: NULL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: NULL
        Extra: Impossible WHERE
*************************** 2. row ***************************
           id: 2
  select_type: SUBQUERY
        table: item
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 100000
        Extra: Using where with pushed condition (t0) Pckrows: 2, susp. 2 (0 empty 0 full). Conditions: 1
2 rows in set (0.00 sec)

contrast mysql Of innodb engine :

mysql edition :

[[email protected] ~]# mysqld --version
/usr/libexec/mysqld  Ver 8.0.26 for Linux on x86_64 (Source distribution)

data :

mysql> select
    ->     o_carrier_id,
    ->     count(*) as order_count
    -> from
    ->     orders
    -> where
    ->     o_entry_d >= date '1993-07-01'
    ->     and o_entry_d < date '2022-07-06' + interval '3' month
    ->     and exists (
    ->         select
    ->             *
    ->         from
    ->             item
    ->         where
    ->             i_name = i_data
    ->             or i_id > i_price
    ->     )
    -> group by
    ->     o_carrier_id
    -> order by
    ->     o_carrier_id;
+--------------+-------------+
| o_carrier_id | order_count |
+--------------+-------------+
|         NULL |       90000 |
|            1 |       21218 |
|            2 |       20976 |
|            3 |       20727 |
|            4 |       21098 |
|            5 |       21084 |
|            6 |       20878 |
|            7 |       21114 |
|            8 |       20800 |
|            9 |       21265 |
|           10 |       20840 |
+--------------+-------------+
11 rows in set (0.11 sec)
mysql> explain select
    ->     o_carrier_id,
    ->     count(*) as order_count
    -> from
    ->     orders
    -> where
    ->     o_entry_d >= date '1993-07-01'
    ->     and o_entry_d < date '2022-07-06' + interval '3' month
    ->     and exists (
    ->         select
    ->             *
    ->         from
    ->             item
    ->         where
    ->             i_name = i_data
    ->             or i_id > i_price
    ->     )
    -> group by
    ->     o_carrier_id
    -> order by
    ->     o_carrier_id \G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: item
   partitions: NULL
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 92192
     filtered: 40.00
        Extra: Using where; Using temporary; Using filesort; FirstMatch
*************************** 2. row ***************************
           id: 1
  select_type: SIMPLE
        table: orders
   partitions: NULL
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 271048
     filtered: 11.11
        Extra: Using where; Using join buffer (hash join)
2 rows in set, 1 warning (0.00 sec)

原网站

版权声明
本文为[Emperor Zunwu world]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/187/202207061427421518.html