Spracherkennung für: .test vermutete Sprache: SQL {SQL[220] VDM[110] ADA[88]} [Methode: maximale Elemente, drei Dimensionen]
--source include/have_rocksdb.inc
# only SingleDelete increases
CREATE TABLE t1 (id INT, value int, PRIMARY KEY (id), INDEX (value)) ENGINE=RocksDB;
INSERT INTO t1 VALUES (1,1);
--disable_cursor_protocol
select variable_value into @s from information_schema.global_status where variable_name='rocksdb_number_sst_entry_singledelete';
select variable_value into @d from information_schema.global_status where variable_name='rocksdb_number_sst_entry_delete';
--enable_cursor_protocol
--disable_query_log
let $i = 1;
while ($i <= 10000) {
let $update = UPDATE t1 SET value=value+1 WHERE value=$i;
inc $i;
eval $update;
}
--enable_query_log
optimize table t1;
select case when variable_value-@s > 5 and variable_value-@s < 100 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_number_sst_entry_singledelete';
select case when variable_value-@d < 10 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_number_sst_entry_delete';
# both SingleDelete and Delete increases
CREATE TABLE t2 (id INT, value int, PRIMARY KEY (id), INDEX (value)) ENGINE=RocksDB;
INSERT INTO t2 VALUES (1,1);
--disable_cursor_protocol
select variable_value into @s from information_schema.global_status where variable_name='rocksdb_number_sst_entry_singledelete';
select variable_value into @d from information_schema.global_status where variable_name='rocksdb_number_sst_entry_delete';
--enable_cursor_protocol
--disable_query_log
let $i = 1;
while ($i <= 10000) {
let $update = UPDATE t2 SET id=id+1 WHERE id=$i;
inc $i;
eval $update;
}
--enable_query_log
optimize table t2;
select case when variable_value-@s > 5 and variable_value-@s < 100 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_number_sst_entry_singledelete';
select case when variable_value-@d > 9000 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_number_sst_entry_delete';
# only Delete increases
CREATE TABLE t3 (id INT, value int, PRIMARY KEY (id)) ENGINE=RocksDB;
INSERT INTO t3 VALUES (1,1);
--disable_cursor_protocol
select variable_value into @s from information_schema.global_status where variable_name='rocksdb_number_sst_entry_singledelete';
select variable_value into @d from information_schema.global_status where variable_name='rocksdb_number_sst_entry_delete';
--enable_cursor_protocol
--disable_query_log
let $i = 1;
while ($i <= 10000) {
let $update = UPDATE t3 SET id=id+1 WHERE id=$i;
inc $i;
eval $update;
}
--enable_query_log
optimize table t3;
select case when variable_value-@s = 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_number_sst_entry_singledelete';
select case when variable_value-@d > 9000 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_number_sst_entry_delete';
# only SingleDelete increases
CREATE TABLE t4 (id INT, PRIMARY KEY (id)) ENGINE=RocksDB;
INSERT INTO t4 VALUES (1);
--disable_cursor_protocol
select variable_value into @s from information_schema.global_status where variable_name='rocksdb_number_sst_entry_singledelete';
select variable_value into @d from information_schema.global_status where variable_name='rocksdb_number_sst_entry_delete';
--enable_cursor_protocol
--disable_query_log
let $i = 1;
while ($i <= 10000) {
let $update = UPDATE t4 SET id=id+1 WHERE id=$i;
inc $i;
eval $update;
}
--enable_query_log
optimize table t4;
select case when variable_value-@s > 5 and variable_value-@s < 100 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_number_sst_entry_singledelete';
select case when variable_value-@d < 10 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_number_sst_entry_delete';
# only SingleDelete increases
CREATE TABLE t5 (id1 INT, id2 INT, PRIMARY KEY (id1, id2), INDEX(id2)) ENGINE=RocksDB;
INSERT INTO t5 VALUES (1, 1);
--disable_cursor_protocol
select variable_value into @s from information_schema.global_status where variable_name='rocksdb_number_sst_entry_singledelete';
select variable_value into @d from information_schema.global_status where variable_name='rocksdb_number_sst_entry_delete';
--enable_cursor_protocol
--disable_query_log
let $i = 1;
while ($i <= 10000) {
let $update = UPDATE t5 SET id1=id1+1 WHERE id1=$i;
inc $i;
eval $update;
}
--enable_query_log
optimize table t5;
select case when variable_value-@s > 5 and variable_value-@s < 100 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_number_sst_entry_singledelete';
select case when variable_value-@d < 10 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_number_sst_entry_delete';
# SingleDelete used for PK. Verify old PK is always deleted.
CREATE TABLE t6 (
pk VARCHAR(64) COLLATE latin1_swedish_ci PRIMARY KEY
) ENGINE=RocksDB;
INSERT INTO t6 VALUES ('a');
SET GLOBAL rocksdb_force_flush_memtable_now=1;
SELECT * FROM t6;
UPDATE t6 SET pk='A' WHERE pk='a';
SELECT * FROM t6;
DELETE FROM t6 where pk='A';
--echo SELECT should return nothing;
SELECT * FROM t6;
SET GLOBAL rocksdb_force_flush_memtable_now=1;
--echo SELECT should return nothing;
SELECT * FROM t6;
DROP TABLE t1, t2, t3, t4, t5, t6;
[Dauer der Verarbeitung: 0.22 Sekunden, vorverarbeitet 2026-10-08]