Select random ranges and select random points
From Askmonty.org
* select_random_ranges (select 10 ranges with a delta as parameter) * select_random_points (select 100 random points)
Findings:
select_random_ranges * A delta of 100 for the ranges gives 3 - 6% performance gain * A delta of 50 for the ranges gives 3 - 15% performance gain * A delta of 5 for the ranges gives up to 70% performance gain * A delta of 1 million shows no difference at all. select_random_points * We see up to 150% performance gain fetching index only * We see up to 50% performance gain fetching index and data
The absolute numbers are highly RAM depended
* We see up to 250% performance difference on a 2GB system compared to a 4GB system.
MariaDB and MySQL was compiled with
BUILD/compile-amd64-max
MariaDB revision is:
revno: 2742 committer: Igor Babaev <igor@askmonty.org> branch nick: maria-5.2-keycache timestamp: Tue 2010-02-16 08:41:11 -0800 message: WL#86: Partitioned key cache for MyISAM. This is the base patch for the task.
sysbench was run with this parameters:
--oltp-table-size=20000000 \ # 20 million rows.
--max-requests=0 \
--mysql-table-engine=MyISAM \
--mysql-user=root \
--mysql-engine-trx=no \
--myisam-max-rows=50000000 \
--rand-seed=303
and this variable part of parameters
--num-threads=$THREADS --test=${TEST_DIR}/${SYSBENCH_TEST}
Configuration used for MariDB: --no-defaults \ --datadir=/mnt/data/sysbench/data \ --language=./sql/share/english \ --key_buffer_size=512M \ --key_cache_partitions=32 \ # Off | 32 | 64 --max_connections=256 \ --query_cache_size=0 \ --query_cache_type=0 \ --skip-grant-tables \ --socket=/tmp/mysql.sock \ --table_open_cache=512 \ --thread_cache=512 \ --tmpdir=/mnt/data/sysbench

