| Server IP : 45.40.142.9 / Your IP : 216.73.216.250 Web Server : Apache System : Linux s45-40-142-9.secureserver.net 2.6.32-754.35.1.el6.x86_64 #1 SMP Sat Nov 7 12:42:14 UTC 2020 x86_64 User : bayspec ( 506) PHP Version : 5.6.40 Disable Function : NONE MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/mysql-test/t/ |
Upload File : |
# Tests for eq_range_index_dive_limit variable:
# test that index dives are not done when index
# statistics is requested
--source include/have_debug.inc
SET eq_range_index_dive_limit=default;
SELECT @@eq_range_index_dive_limit;
CREATE TABLE t1
(
/* Field names reflect value(rowid) distribution, st=STairs, swt= SaWTooth */
st_a int,
swt1a int,
swt2a int,
st_b int,
swt1b int,
swt2b int,
key sta_swt12a(st_a,swt1a,swt2a),
key sta_swt1a(st_a,swt1a),
key sta_swt2a(st_a,swt2a),
key sta_swt21a(st_a,swt2a,swt1a),
key st_a(st_a),
key stb_swt1a_2b(st_b,swt1b,swt2a),
key stb_swt1b(st_b,swt1b),
key st_b(st_b)
) ;
ALTER TABLE t1 DISABLE KEYS;
--disable_query_log
--echo #
--echo # Printing of many insert into t1 disabled.
--echo #
let $1=3;
while ($1)
{
let $2=3;
while ($2)
{
let $3=3;
while ($3)
{
let $equal_records=30;
while ($equal_records)
{
eval insert into t1 select $1, $2, $3, $1 ,$2, $3;
dec $equal_records;
}
dec $3;
}
dec $2;
}
dec $1;
}
--enable_query_log
ALTER TABLE t1 ENABLE KEYS;
ANALYZE TABLE t1;
--echo #
--echo # Run index_merge queries two times: 1) with index dives
--echo # 2) with index statistics
--echo #
let $iterations=2;
while ($iterations)
{
dec $iterations;
--echo
explain
select * from t1
where st_a=1 and swt1a=1 and swt2a=1 and st_b=1 and swt1b=1 and swt2b=1 limit 5;
select * from t1
where st_a=1 and swt1a=1 and swt2a=1 and st_b=1 and swt1b=1 and swt2b=1 limit 5;
--echo
explain
select * from t1
where st_a=1 and swt1a=1 and swt2a=1 and st_b=1 and swt1b=1 limit 5;
select * from t1
where st_a=1 and swt1a=1 and swt2a=1 and st_b=1 and swt1b=1 limit 5;
--echo
explain
select * from t1
where st_a=1 and swt1a=1 and st_b=1 and swt1b=1 and swt1b=1 limit 5;
select * from t1
where st_a=1 and swt1a=1 and st_b=1 and swt1b=1 and swt1b=1 limit 5;
--echo
SET eq_range_index_dive_limit=1;
SET SESSION DEBUG="+d,crash_records_in_range";
}
DROP TABLE t1;