2. Performance degraded as the number of records increased
• purpose of confirmation
• MySQL database sharding via Spider
• Confirm that performance issues caused by increasing data are resolved
• structure
• sp2_r2
– 2 MySQL servers with Spider, 128(total 256) parallel execution,
2 MySQL servers for real data(innodb)
• sp4_r4
– 4 MySQL servers with Spider, 128(total 512) parallel execution,
4 MySQL servers for real data(innodb)
• r1
– 1 MySQL server for real data(innodb), 128 parallel execution
• columns in the table
• a:primary key
• b:key
• c:key
• d:no key
• target number of records per test
• insert:6000000
• select:600000
• update:60000
• delete:60000
3. Insert (Insert Test Time – Lower is better)
insert into tbl_a (a,b,c,d) values (?,?,?,?)
1200
1000
test time(sec)
800 sp2_r2
600 sp4_r4
400 r1
200
0
600 2400 4200 6000 7800 9600 11400
number of records (x10,000)
4. Select (Select Test Time – Lower is better)
select a from tbl_a where b = ?
2500
2000
test time(sec)
sp2_r2
1500
sp4_r4
1000
r1
500
0
600 2400 4200 6000 7800 9600 11400
number of records
select a from tbl_a where a = ?
6000
5000
test time(sec)
4000 sp2_r2
3000 sp4_r4
2000 r1
1000
0
600 2400 4200 6000 7800 9600 11400
number of records
5. Select (Select Test Time – Lower is better)
select d from tbl_a where a = ?
6000
5000
test time(sec)
4000 sp2_r2
3000 sp4_r4
2000 r1
1000
0
600 2400 4200 6000 7800 9600 11400
number of records
select d from tbl_a where b = ?
12000
10000
test time(sec)
8000 sp2_r2
6000 sp4_r4
4000 r1
2000
0
600 3000 5400 7800 10200
number of records
6. Update (Update Test Time – Lower is better)
update tbl_a set d = ? where a = ?
700
600
test time(sec)
500 sp2_r2
400
sp4_r4
300
200 r1
100
0
600 2400 4200 6000 7800 9600 11400
number of records
update tbl_a set d = ? where b = ?
1400
1200
test time(sec)
1000 sp2_r2
800
sp4_r4
600
400 r1
200
0
600 2400 4200 6000 7800 9600 11400
number of records
7. Update (Update Test Time – Lower is better)
update tbl_a set c = ? where a = ?
3000
2500
test time(sec)
2000 sp2_r2
1500 sp4_r4
1000 r1
500
0
600 2400 4200 6000 7800 9600 11400
number of records
update tbl_a set c = ? where b = ?
4000
test time(sec)
3000
sp2_r2
2000 sp4_r4
r1
1000
0
600 2400 4200 6000 7800 9600 11400
number of records
8. Delete (Delete Test Time – Lower is better)
delete from tbl_a where a = ?
3000
2500
test time(sec)
2000 sp2_r2
1500 sp4_r4
1000 r1
500
0
600 2400 4200 6000 7800 9600 11400
number of records
delete from tbl_a where b = ?
3500
3000
test time(sec)
2500 sp2_r2
2000
sp4_r4
1500
1000 r1
500
0
600 2400 4200 6000 7800 9600 11400
number of records