To
show benchmarking, below General Purpose mysql RDS created
Metric 3: IOPS per sec. Second Spike for Test 3 is highest
innodb_version
|
5.6.16
|
protocol_version
|
10
|
slave_type_conversions
|
|
tls_version
|
TLSv1,TLSv1.1,TLSv1.2
|
tokudb_version
|
7.5.6
|
version
|
5.6.16-log
|
version_comment
|
Source distribution
|
version_compile_compiler
|
GNU
|
version_compile_compiler_major
|
4
|
version_compile_compiler_minor
|
8
|
version_compile_machine
|
x86_64
|
version_compile_os
|
Linux
|
-- ** TEST 1 ** First, This test load 10,000,000 random genrated records via a stored procedure.
CREATE TABLE MY_FACT
(
DATE_DIM_DATE_ID INT,
BRANCH_DIM_BRANCH_ID INT,
PRODUCT_DIM_PRODUCT_ID INT,
ACCOUNT_DIM_ACCOUNT_ID INT,
MY_FACT_REVENUE float,
MY_FACT_COST float,
MY_FACT_REVENUE2 float,
MY_FACT_COST2 float
);
--Success,Time Consumed:[3ms.]
CREATE INDEX MY_FACT_CL01 ON MY_FACT (DATE_DIM_DATE_ID);
--Success,Time Consumed:[4ms.]
-- Stored procedure that loaded the table MY_FACT via insert
DELIMITER $$
CREATE PROCEDURE InsertRand(IN NumRows INT, IN MinVal INT, IN MaxVal INT)
BEGIN
DECLARE i INT;
SET i = 1;
START TRANSACTION;
WHILE i <= NumRows DO
INSERT INTO MY_FACT VALUES ((MinVal + CEIL(RAND() * (MaxVal - MinVal))),
(MinVal + CEIL(RAND() * (MaxVal - MinVal))),
(MinVal + CEIL(RAND() * (MaxVal - MinVal))),
(MinVal + CEIL(RAND() * (MaxVal - MinVal))),
(MinVal + CEIL(RAND() * (MaxVal - MinVal))),
(MinVal + CEIL(RAND() * (MaxVal - MinVal))),
(MinVal + CEIL(RAND() * (MaxVal - MinVal))),
(MinVal + CEIL(RAND() * (MaxVal - MinVal))));
SET i = i + 1;
END WHILE;
COMMIT;
END$$
DELIMITER ;
--Success,Time Consumed:[1ms.]
--The table was loaded by calling the stored procedure.
CALL InsertRand(10000000, 111, 999999);
--Success,Time Consumed:[430337ms.]
--Start Time: 22:28,
Metric 1 we can see the Spike
- ** TEST 2 ** Second, This test load 10,000,000 records from the first table to the second via a single insert statement.
CREATE TABLE MY_FACT2
(
DATE_DIM_DATE_ID INT,
BRANCH_DIM_BRANCH_ID INT,
PRODUCT_DIM_PRODUCT_ID INT,
ACCOUNT_DIM_ACCOUNT_ID INT,
MY_FACT_REVENUE float,
MY_FACT_COST float,
MY_FACT_REVENUE2 float,
MY_FACT_COST2 float
);
INSERT INTO MY_FACT2
--Success,Rows Affected:[10000000],Time Consumed:[53820ms.]
--Start Time: 22:40
-- ** TEST 3 ** Third, the test load 10,000,000 records from the first table to the third via a CTAS.
CREATE TABLE MY_FACT3 AS SELECT * FROM MY_FACT;
--Success,Time Consumed:[52390ms.]
--Start Time: 22:44
-- ** TEST 4 ** Finally, 10,000,000 rows were updated by a single update statement.
UPDATE MY_FACT3
SET MY_FACT3.MY_FACT_COST = 0,
MY_FACT3.MY_FACT_REVENUE = 11111111,
MY_FACT3.MY_FACT_REVENUE2 = 999999.99;
--Success,Rows Affected:[10000000],Time Consumed:[40410ms.]
--Start Time: 22:47
RESULTS:
Metric
1: CPU + Memory spike during TEST 1, Second Spike is for TEST 3
Metric
2: Disk Space usage during tests:
Metric 3: IOPS per sec. Second Spike for Test 3 is highest
Max
allowed connections:
SHOW VARIABLES LIKE "max_connections";
max_connections 812
Other
Important Metrics:
For other performance benchmarking refer:
Post a Comment
Post a Comment
Thanks for your comment !
I will review your this and will respond you as soon as possible.