[MCOL-425] Performance comparison between InnoDB and ColumnStore dimension tables Created: 2016-11-29  Updated: 2021-06-23  Resolved: 2021-06-23

Status: Closed
Project: MariaDB ColumnStore
Component/s: ?
Affects Version/s: None
Fix Version/s: N/A

Type: Task Priority: Trivial
Reporter: Daniel Lee (Inactive) Assignee: Unassigned
Resolution: Won't Do Votes: 0
Labels: None


 Description   

What is the performance difference between using InnoDB and ColumnStore dimension tables? Which one should be use if there is a choice?



 Comments   
Comment by Daniel Lee (Inactive) [ 2017-06-08 ]

Single server installation, ColumnStore 1.0.9-1

dbt3 10g
customer: 1,500,000 rows
orders: 15,000,000 rows
lineitem: 59,986,052 rows

All tables are in ColumnStore
Query: select count from lineitem l, orders o where l.l_orderkey = o.o_orderkey;

disk run: 10.75 sec
cached run: 10.19 sec

orders in InnoDB, lineitem in ColumnStore
disk run: 113.28 sec
cached run: 80.67 sec

Query: select count from orders;
cached run: 61.76 sec

All tables are in ColumnStore
Query: select count from lineitem l, orders o, customer c where l.l_orderkey = o.o_orderkey and o.o_custkey = c.c_custkey;
disk run: 13.19 sec
cached run: 12.20 sec

customer in InnoDB, orders and lineitem in ColumnStore
disk run: 21.39 sec
cached run: 21.29 sec

Query: select count from customer;
cached run: 9.00 sec

Comment by Daniel Lee (Inactive) [ 2017-06-08 ]

I forgot to create primary key and index for innodb tables in the previous test.
Repeat the 2nd test for InnoDB

ALTER TABLE customer ADD PRIMARY KEY (c_custkey);
CREATE INDEX i_c_nationkey ON customer (c_nationkey);

Query: select count from lineitem l, orders o, customer c where l.l_orderkey = o.o_orderkey and o.o_custkey = c.c_custkey;

All tables are in ColumnStore (from previous test)
disk run: 13.19 sec
cached run: 12.20 sec

customer in InnoDB, orders and lineitem in ColumnStore
disk run: 13.64 sec
cached run: 12.88 sec

Also added another test with a filter

Query: select count from lineitem l, orders o, customer c where l.l_orderkey = o.o_orderkey and o.o_custkey = c.c_custkey and c_nationkey <= 5;

All tables are in ColumnStore
disk run: 4.98 sec
cached run: 4.42 sec

customer in InnoDB, orders and lineitem in ColumnStore
disk run: 4.56 sec
cached run: 4.58 sec

Comment by Daniel Lee (Inactive) [ 2017-07-10 ]

Not sure what else needs to be done for this ticket. I am setting it to unassigned now.

Generated at Thu Feb 08 02:20:58 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.