MySQL Forums
Forum List  »  NDB clusters

DISKLESS TOO BAD PERFORMANCE
Posted by: Yury Tsaregorodtsev
Date: February 26, 2016 03:40AM

Hi Gurus,
have anyone idea why InnoDB perform much faster then NDB within single server (single node) ?
simple table, for 3000000 rows (ID, COL1, COL2)
when I do: UPDATE TEST SET COL1=1;
its took 6ms on NDB vs 1ms on InnoDB.
DataMemory & IndexMemory huge enough,
MaxNoOfExecutionThreads=9
RealtimeScheduler=1
MaxNoOfConcurrentOperations=3100000
accordingly to this config NDB should fly!
What I miss ?


How to reproduce:
1. Create table:
CREATE TABLE `TEST` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`TIME` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`COL1` varchar(45) DEFAULT NULL,
`COL2` varchar(45) DEFAULT NULL,
`COL3` varchar(45) DEFAULT NULL,
`COL4` varchar(255) DEFAULT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `ID_UNIQUE` (`ID`),
KEY `TIME` (`TIME`)
) ENGINE=ndbcluster AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

2. Fill table:
INSERT INTO TEST(COL1,COL2,COL3,COL4) VALUES (1,2,3,4);

3. Insert 3000000 rows:
DELIMITER $$
CREATE PROCEDURE insert_test_data()
BEGIN
DECLARE i INT DEFAULT 1;

WHILE i < 3000000 DO
INSERT INTO `TEST` (`COL1`, `COL2`, `COL3`, `COL4`)
SELECT `COL1`, `COL2`, `COL3`, `COL4`
FROM `TEST`
WHERE id = 1;
SET i = i + 1;
END WHILE;
END$$
DELIMITER ;

4. Fill tables with rows:
CALL insert_test_data();

5. Perform UPDATE:
UPDATE TEST SET COL1=2;

Options: ReplyQuote


Subject
Views
Written By
Posted
DISKLESS TOO BAD PERFORMANCE
1471
February 26, 2016 03:40AM
686
March 08, 2016 05:45PM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.