mirror of
https://github.com/MariaDB/server.git
synced 2025-04-28 06:45:23 +03:00
223 lines
5.2 KiB
Plaintext
223 lines
5.2 KiB
Plaintext
include/master-slave.inc
|
|
[connection master]
|
|
connection master;
|
|
CREATE PROCEDURE populate_t1(load_even INT)
|
|
BEGIN
|
|
DECLARE i int DEFAULT 1;
|
|
START TRANSACTION;
|
|
WHILE (i <= 100) DO
|
|
IF i%2 = 0 AND load_even = 1 THEN
|
|
INSERT INTO t1 VALUES (i, i, CONCAT('a', i));
|
|
END IF;
|
|
IF i%2 != 0 AND load_even != 1 THEN
|
|
INSERT INTO t1 VALUES (i, i, CONCAT('a', i));
|
|
END IF;
|
|
SET i = i + 1;
|
|
END WHILE;
|
|
COMMIT;
|
|
END|
|
|
CREATE TABLE t1(
|
|
class INT,
|
|
id INT,
|
|
title VARCHAR(100)
|
|
) ENGINE=InnoDB ;
|
|
SELECT COUNT(*) FROM t1;
|
|
COUNT(*)
|
|
50
|
|
/* Create index. */
|
|
CREATE INDEX idx_id ON t1(id);
|
|
CREATE INDEX idx_title ON t1(title);
|
|
/* Select by index. */
|
|
EXPLAIN SELECT * FROM t1 WHERE id = 10;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 ref idx_id idx_id 5 const 1
|
|
EXPLAIN SELECT * FROM t1 WHERE title = 'a10';
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE t1 ref idx_title idx_title 403 const 1 Using index condition
|
|
SELECT * FROM t1 WHERE id = 10;
|
|
class id title
|
|
10 10 a10
|
|
SELECT * FROM t1 WHERE title = 'a10';
|
|
class id title
|
|
10 10 a10
|
|
SELECT * FROM t1 WHERE id = 20;
|
|
class id title
|
|
20 20 a20
|
|
SELECT * FROM t1 WHERE title = 'a20';
|
|
class id title
|
|
20 20 a20
|
|
SELECT * FROM t1 WHERE id = 30;
|
|
class id title
|
|
30 30 a30
|
|
SELECT * FROM t1 WHERE title = 'a30';
|
|
class id title
|
|
30 30 a30
|
|
SELECT * FROM t1 WHERE id = 101;
|
|
class id title
|
|
SELECT * FROM t1 WHERE title = 'a101';
|
|
class id title
|
|
/*Insert/Update/Delete. */
|
|
DELETE FROM t1 WHERE id < 40 AND id > 30;
|
|
INSERT INTO t1 VALUES(38, 38, 'b38');
|
|
UPDATE t1 SET title = CONCAT('b', id) WHERE id < 30 AND id > 20;
|
|
SELECT * FROM t1 WHERE id = 28;
|
|
class id title
|
|
28 28 b28
|
|
SELECT * FROM t1 WHERE title = 'a28';
|
|
class id title
|
|
SELECT * FROM t1 WHERE title = 'b28';
|
|
class id title
|
|
28 28 b28
|
|
SELECT * FROM t1 WHERE id = 38;
|
|
class id title
|
|
38 38 b38
|
|
SELECT * FROM t1 WHERE title = 'a38';
|
|
class id title
|
|
SELECT * FROM t1 WHERE title = 'b38';
|
|
class id title
|
|
38 38 b38
|
|
SELECT * FROM t1 WHERE id = 101;
|
|
class id title
|
|
SELECT * FROM t1 WHERE title = 'a101';
|
|
class id title
|
|
SELECT COUNT(*) FROM t1;
|
|
COUNT(*)
|
|
97
|
|
SELECT * FROM t1 WHERE id = 10;
|
|
class id title
|
|
10 10 a10
|
|
SELECT * FROM t1 WHERE title = 'a10';
|
|
class id title
|
|
10 10 a10
|
|
SELECT * FROM t1 WHERE id = 20;
|
|
class id title
|
|
20 20 a20
|
|
SELECT * FROM t1 WHERE title = 'a20';
|
|
class id title
|
|
20 20 a20
|
|
SELECT * FROM t1 WHERE id = 30;
|
|
class id title
|
|
30 30 a30
|
|
SELECT * FROM t1 WHERE title = 'a30';
|
|
class id title
|
|
30 30 a30
|
|
SELECT * FROM t1 WHERE id = 101;
|
|
class id title
|
|
SELECT * FROM t1 WHERE title = 'a101';
|
|
class id title
|
|
CREATE TABLE t_part (
|
|
class INT ,
|
|
id INT ,
|
|
title VARCHAR(30)
|
|
) ENGINE=InnoDB
|
|
PARTITION BY RANGE(id)
|
|
SUBPARTITION BY KEY(id)
|
|
SUBPARTITIONS 4
|
|
(
|
|
PARTITION p0 VALUES LESS THAN (5000),
|
|
PARTITION p1 VALUES LESS THAN (MAXVALUE)
|
|
);
|
|
INSERT INTO t_part SELECT * FROM t1;
|
|
ALTER TABLE t_part ADD INDEX `idx` (class,id,title(10));
|
|
SELECT * FROM t_part WHERE id = 10;
|
|
class id title
|
|
10 10 a10
|
|
SELECT * FROM t_part WHERE title = 'a10';
|
|
class id title
|
|
10 10 a10
|
|
SELECT * FROM t_part WHERE id = 20;
|
|
class id title
|
|
20 20 a20
|
|
SELECT * FROM t_part WHERE title = 'a20';
|
|
class id title
|
|
20 20 a20
|
|
SELECT * FROM t_part WHERE id = 30;
|
|
class id title
|
|
30 30 a30
|
|
SELECT * FROM t_part WHERE title = 'a30';
|
|
class id title
|
|
30 30 a30
|
|
SELECT * FROM t_part WHERE id = 101;
|
|
class id title
|
|
SELECT * FROM t_part WHERE title = 'a101';
|
|
class id title
|
|
include/sync_slave_sql_with_master.inc
|
|
connection slave;
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`class` int(11) DEFAULT NULL,
|
|
`id` int(11) DEFAULT NULL,
|
|
`title` varchar(100) DEFAULT NULL,
|
|
KEY `idx_id` (`id`),
|
|
KEY `idx_title` (`title`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci
|
|
SHOW CREATE TABLE t_part;
|
|
Table Create Table
|
|
t_part CREATE TABLE `t_part` (
|
|
`class` int(11) DEFAULT NULL,
|
|
`id` int(11) DEFAULT NULL,
|
|
`title` varchar(30) DEFAULT NULL,
|
|
KEY `idx` (`class`,`id`,`title`(10))
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_uca1400_ai_ci
|
|
PARTITION BY RANGE (`id`)
|
|
SUBPARTITION BY KEY (`id`)
|
|
SUBPARTITIONS 4
|
|
(PARTITION `p0` VALUES LESS THAN (5000) ENGINE = InnoDB,
|
|
PARTITION `p1` VALUES LESS THAN MAXVALUE ENGINE = InnoDB)
|
|
SELECT COUNT(*) FROM t1;
|
|
COUNT(*)
|
|
97
|
|
SELECT COUNT(*) FROM t_part;
|
|
COUNT(*)
|
|
97
|
|
SELECT * FROM t1 WHERE id = 10;
|
|
class id title
|
|
10 10 a10
|
|
SELECT * FROM t1 WHERE title = 'a10';
|
|
class id title
|
|
10 10 a10
|
|
SELECT * FROM t1 WHERE id = 20;
|
|
class id title
|
|
20 20 a20
|
|
SELECT * FROM t1 WHERE title = 'a20';
|
|
class id title
|
|
20 20 a20
|
|
SELECT * FROM t1 WHERE id = 30;
|
|
class id title
|
|
30 30 a30
|
|
SELECT * FROM t1 WHERE title = 'a30';
|
|
class id title
|
|
30 30 a30
|
|
SELECT * FROM t1 WHERE id = 101;
|
|
class id title
|
|
SELECT * FROM t1 WHERE title = 'a101';
|
|
class id title
|
|
SELECT * FROM t_part WHERE id = 10;
|
|
class id title
|
|
10 10 a10
|
|
SELECT * FROM t_part WHERE title = 'a10';
|
|
class id title
|
|
10 10 a10
|
|
SELECT * FROM t_part WHERE id = 20;
|
|
class id title
|
|
20 20 a20
|
|
SELECT * FROM t_part WHERE title = 'a20';
|
|
class id title
|
|
20 20 a20
|
|
SELECT * FROM t_part WHERE id = 30;
|
|
class id title
|
|
30 30 a30
|
|
SELECT * FROM t_part WHERE title = 'a30';
|
|
class id title
|
|
30 30 a30
|
|
SELECT * FROM t_part WHERE id = 101;
|
|
class id title
|
|
SELECT * FROM t_part WHERE title = 'a101';
|
|
class id title
|
|
connection master;
|
|
DROP PROCEDURE populate_t1;
|
|
DROP TABLE t1;
|
|
DROP TABLE t_part;
|
|
include/rpl_end.inc
|