mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 16:02:11 +00:00
Added count of my_sync calls (to SHOW STATUS)
tmp_table_size can now be set to 0 (to disable in memory internal temp tables) Improved speed for internal Maria temp tables: - Don't use packed keys, except with long text fields. - Don't copy key all accessed pages during key search. Some new benchmark tests to sql-bench (for group by) BUILD/compile-pentium64-gcov: Update script to use same pentium_config flags as other tests BUILD/compile-pentium64-gprof: Update script to use same pentium_config flags as other tests include/my_sys.h: Added count of my_sync calls mysql-test/r/variables.result: tmp_table_size can now be set to 0 sql-bench/test-select.sh: Added some new test for GROUP BY on a not key field and group by with different order by sql/mysqld.cc: Added count of my_sync calls tmp_table_size can now be set to 0 (to disable in memory internal temp tables) sql/sql_select.cc: If tmp_table_size is 0, don't use in memory temp tables (good for benchmarking MyISAM/Maria temp tables) Don't pack keys for Maria tables; The 8K page size makes packed keys too slow for temp tables. storage/maria/ma_key_recover.h: Moved definition to maria_def.h storage/maria/ma_page.c: Moved code used to simplify comparing of identical Maria tables to own function (page_cleanup()) Fixed that one can read a page with a read lock. storage/maria/ma_rkey.c: For not exact key reads, cache the page where we found key (to speed up future read-next/read-prev calls) storage/maria/ma_search.c: Moved code to cache last key page to separate function. Instead of copying pages, only get a link to the page. This notable speeds up key searches on bigger tables. storage/maria/ma_write.c: Added comment storage/maria/maria_def.h: Moved page_cleanup() to separate function.
This commit is contained in:
@ -68,7 +68,8 @@ do_many($dbh,$server->create("bench1",
|
||||
["region char(1) NOT NULL",
|
||||
"idn integer(6) NOT NULL",
|
||||
"rev_idn integer(6) NOT NULL",
|
||||
"grp integer(6) NOT NULL"],
|
||||
"grp integer(6) NOT NULL",
|
||||
"grp_no_key integer(6) NOT NULL"],
|
||||
["primary key (region,idn)",
|
||||
"unique (region,rev_idn)",
|
||||
"unique (region,grp,idn)"]));
|
||||
@ -105,10 +106,10 @@ for ($id=0,$rev_id=$opt_loop_count-1 ; $id < $opt_loop_count ; $id++,$rev_id--)
|
||||
{
|
||||
$grp=$id*3 % $opt_groups;
|
||||
$region=chr(65+$id%$opt_regions);
|
||||
do_query($dbh,"$query'$region',$id,$rev_id,$grp)");
|
||||
do_query($dbh,"$query'$region',$id,$rev_id,$grp,$grp)");
|
||||
if ($id == $half_done)
|
||||
{ # Test with different insert
|
||||
$query="insert into bench1 (region,idn,rev_idn,grp) values (";
|
||||
$query="insert into bench1 (region,idn,rev_idn,grp,grp_no_key) values (";
|
||||
}
|
||||
}
|
||||
|
||||
@ -323,6 +324,26 @@ if ($limits->{'group_functions'})
|
||||
$end_time=new Benchmark;
|
||||
print "Time for count_group_on_key_parts ($i:$rows): " .
|
||||
timestr(timediff($end_time, $loop_time),"all") . "\n";
|
||||
|
||||
$loop_time=new Benchmark;
|
||||
$rows=0;
|
||||
for ($i=0 ; $i < $opt_medium_loop_count ; $i++)
|
||||
{
|
||||
$rows+=fetch_all_rows($dbh,"select grp_no_key,count(*) from bench1 group by grp_no_key");
|
||||
}
|
||||
$end_time=new Benchmark;
|
||||
print "Time for count_group ($i:$rows): " .
|
||||
timestr(timediff($end_time, $loop_time),"all") . "\n";
|
||||
|
||||
$loop_time=new Benchmark;
|
||||
$rows=0;
|
||||
for ($i=0 ; $i < $opt_medium_loop_count ; $i++)
|
||||
{
|
||||
$rows+=fetch_all_rows($dbh,"select grp_no_key,count(*) as cnt from bench1 group by grp_no_key order by cnt");
|
||||
}
|
||||
$end_time=new Benchmark;
|
||||
print "Time for count_group_with_order ($i:$rows): " .
|
||||
timestr(timediff($end_time, $loop_time),"all") . "\n";
|
||||
}
|
||||
|
||||
if ($limits->{'group_distinct_functions'})
|
||||
|
Reference in New Issue
Block a user