Server IP : 172.67.216.182 / Your IP : 172.70.188.103 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /www/server/mysql/src/mysql-test/suite/innodb/t/ |
Upload File : |
# # Test that the table option STATS_SAMPLE_PAGES=N|default is indeed # used by InnoDB # -- source include/have_innodb.inc # Page numbers printed by this test depend on the page size -- source include/have_innodb_16k.inc SET GLOBAL innodb_stats_persistent_sample_pages=17; CREATE TABLE test_ps_sample_pages_used ( a VARCHAR(512), PRIMARY KEY (a) ) ENGINE=INNODB STATS_SAMPLE_PAGES=default; # Insert enough records into the table so that it has more than 2*17+1 pages # If we ask to scan more than the half of the leaf pages, then the sampling # will do full scan and we cannot check whether the sample_pages variable was # honored. BEGIN; -- disable_query_log let $i=999; while ($i) { eval INSERT INTO test_ps_sample_pages_used VALUES (REPEAT(1000+$i, 128)); dec $i; } -- enable_query_log COMMIT; ANALYZE TABLE test_ps_sample_pages_used; # confirm the big number of leaf pages in the index SELECT stat_name, stat_value FROM mysql.innodb_index_stats WHERE table_name='test_ps_sample_pages_used' AND stat_name='n_leaf_pages'; # confirm that 17 pages were sampled, that is - the global # innodb_stats_persistent_sample_pages is used when the table option # STATS_SAMPLE_PAGES is set to 'default'. SELECT sample_size FROM mysql.innodb_index_stats WHERE table_name='test_ps_sample_pages_used' AND stat_name='n_diff_pfx01'; ALTER TABLE test_ps_sample_pages_used STATS_SAMPLE_PAGES=14; ANALYZE TABLE test_ps_sample_pages_used; # confirm that 14 pages were sampled, that is - the table option # STATS_SAMPLE_PAGES is used when it is set. SELECT sample_size FROM mysql.innodb_index_stats WHERE table_name='test_ps_sample_pages_used' AND stat_name='n_diff_pfx01'; DROP TABLE test_ps_sample_pages_used; SET GLOBAL innodb_stats_persistent_sample_pages=default;