mirror of
https://github.com/MariaDB/server.git
synced 2025-12-01 17:39:21 +03:00
Instead of writing the high-level redo log records MLOG_LIST_END_COPY_CREATED, MLOG_COMP_LIST_END_COPY_CREATED write log for each individual insert of a record. page_copy_rec_list_end_to_created_page(): Remove. This will improve the fill factor of some pages. Adjust some tests accordingly. PageBulk::init(), PageBulk::finish(): Avoid setting bogus limits to PAGE_HEAP_TOP and PAGE_N_DIR_SLOTS. Avoid accessor functions that would enforce these limits before the correct ones are set at the end of PageBulk::finish().
59 lines
1.7 KiB
Plaintext
59 lines
1.7 KiB
Plaintext
#
|
|
# Bug#15923864 (Bug#67718):
|
|
# INNODB DRASTICALLY UNDER-FILLS PAGES IN CERTAIN CONDITIONS
|
|
#
|
|
SET GLOBAL innodb_file_per_table=ON;
|
|
CREATE TABLE t1 (a BIGINT PRIMARY KEY, b VARCHAR(4096)) ENGINE=InnoDB;
|
|
INSERT INTO t1 VALUES (0, REPEAT('a', 4096));
|
|
INSERT INTO t1 VALUES (1000, REPEAT('a', 4096));
|
|
INSERT INTO t1 VALUES (1001, REPEAT('a', 4096));
|
|
INSERT INTO t1 VALUES (1002, REPEAT('a', 4096));
|
|
INSERT INTO t1 VALUES (1, REPEAT('a', 4096));
|
|
INSERT INTO t1 VALUES (2, REPEAT('a', 4096));
|
|
SELECT page_number, number_records
|
|
FROM information_schema.innodb_sys_tablespaces s1,
|
|
information_schema.innodb_buffer_page s2
|
|
WHERE s1.space = s2.space AND name = 'test/t1'
|
|
AND page_type = "INDEX" ORDER BY page_number;
|
|
page_number number_records
|
|
3 3
|
|
4 3
|
|
5 1
|
|
6 2
|
|
INSERT INTO t1 VALUES (999, REPEAT('a', 4096));
|
|
SELECT page_number, number_records
|
|
FROM information_schema.innodb_sys_tablespaces s1,
|
|
information_schema.innodb_buffer_page s2
|
|
WHERE s1.space = s2.space AND name = 'test/t1'
|
|
AND page_type = "INDEX" ORDER BY page_number;
|
|
page_number number_records
|
|
3 3
|
|
4 3
|
|
5 1
|
|
6 3
|
|
INSERT INTO t1 VALUES (998, REPEAT('a', 4096));
|
|
SELECT page_number, number_records
|
|
FROM information_schema.innodb_sys_tablespaces s1,
|
|
information_schema.innodb_buffer_page s2
|
|
WHERE s1.space = s2.space AND name = 'test/t1'
|
|
AND page_type = "INDEX" ORDER BY page_number;
|
|
page_number number_records
|
|
3 4
|
|
4 3
|
|
5 1
|
|
6 3
|
|
7 1
|
|
INSERT INTO t1 VALUES (997, REPEAT('a', 4096));
|
|
SELECT page_number, number_records
|
|
FROM information_schema.innodb_sys_tablespaces s1,
|
|
information_schema.innodb_buffer_page s2
|
|
WHERE s1.space = s2.space AND name = 'test/t1'
|
|
AND page_type = "INDEX" ORDER BY page_number;
|
|
page_number number_records
|
|
3 4
|
|
4 3
|
|
5 1
|
|
6 3
|
|
7 2
|
|
DROP TABLE t1;
|