Spec-Zone .ru
спецификации, руководства, описания, API
|
Можно определить буферные размеры значения по умолчанию, используемые mysqld сервером, используя эту команду:
shell> mysqld --verbose --help
Эта команда производит список всех mysqld опций и конфигурируемых системных переменных. Вывод включает значения переменных значения по умолчанию и выглядит примерно так:
abort-slave-event-count 0allow-suspicious-udfs FALSEauto-increment-increment 1auto-increment-offset 1automatic-sp-privileges TRUEback_log 50basedir /home/jon/bin/mysql-5.7/bind-address (No default value)binlog-row-event-max-size 1024binlog_cache_size 32768binlog_format (No default value)bulk_insert_buffer_size 8388608character-set-client-handshake TRUEcharacter-set-filesystem binarycharacter-set-server latin1character-sets-dir /home/jon/bin/mysql-5.7/share/mysql/charsets/chroot (No default value)collation-server latin1_swedish_cicompletion-type 0concurrent-insert 1connect_timeout 10console FALSEdatadir .datetime_format %Y-%m-%d %H:%i:%sdate_format %Y-%m-%ddefault-storage-engine MyISAMdefault-time-zone (No default value)default_week_format 0delayed_insert_limit 100delayed_insert_timeout 300delayed_queue_size 1000disconnect-slave-event-count 0div_precision_increment 4engine-condition-pushdown TRUEexpire_logs_days 0external-locking FALSEflush_time 0ft_max_word_len 84ft_min_word_len 4ft_query_expansion_limit 20ft_stopword_file (No default value)gdb FALSEgeneral_log FALSEgeneral_log_file (No default value)group_concat_max_len 1024help TRUEinit-connect (No default value)init-file (No default value)init-slave (No default value)innodb TRUEinnodb-adaptive-hash-index TRUEinnodb-additional-mem-pool-size 1048576innodb-autoextend-increment 8innodb-autoinc-lock-mode 1innodb-buffer-pool-size 8388608innodb-checksums TRUEinnodb-commit-concurrency 0innodb-concurrency-tickets 500innodb-data-file-path (No default value)innodb-data-home-dir (No default value)innodb-doublewrite TRUEinnodb-fast-shutdown 1innodb-file-io-threads 4innodb-file-per-table FALSEinnodb-flush-log-at-trx-commit 1innodb-flush-method (No default value)innodb-force-recovery 0innodb-lock-wait-timeout 50innodb-locks-unsafe-for-binlog FALSEinnodb-log-buffer-size 1048576innodb-log-file-size 5242880innodb-log-files-in-group 2innodb-log-group-home-dir (No default value)innodb-max-dirty-pages-pct 90innodb-max-purge-lag 0innodb-mirrored-log-groups 1innodb-open-files 300innodb-rollback-on-timeout FALSEinnodb-stats-on-metadata TRUEinnodb-status-file FALSEinnodb-support-xa TRUEinnodb-sync-spin-loops 20innodb-table-locks TRUEinnodb-thread-concurrency 8innodb-thread-sleep-delay 10000interactive_timeout 28800join_buffer_size 131072keep_files_on_create FALSEkey_buffer_size 8384512key_cache_age_threshold 300key_cache_block_size 1024key_cache_division_limit 100language /home/jon/bin/mysql-5.7/share/mysql/english/large-pages FALSElc-time-names en_USlocal-infile TRUElog (No default value)log-bin (No default value)log-bin-index (No default value)log-bin-trust-function-creators FALSElog-errorlog-isam myisam.loglog-output FILElog-queries-not-using-indexes FALSElog-short-format FALSElog-slave-updates FALSElog-slow-admin-statements FALSElog-slow-slave-statements FALSElog-tc tc.loglog-tc-size 24576log-warnings 1log_slow_queries (No default value)long_query_time 10low-priority-updates FALSElower_case_table_names 0master-retry-count 86400max-binlog-dump-events 0max_allowed_packet 1048576max_binlog_cache_size 18446744073709547520max_binlog_size 1073741824max_connections 151max_connect_errors 10max_delayed_threads 20max_error_count 64max_heap_table_size 16777216max_join_size 18446744073709551615max_length_for_sort_data 1024max_prepared_stmt_count 16382max_relay_log_size 0max_seeks_for_key 18446744073709551615max_sort_length 1024max_sp_recursion_depth 0max_tmp_tables 32max_user_connections 0max_write_lock_count 18446744073709551615memlock FALSEmin_examined_row_limit 0multi_range_count 256myisam-recover-options OFFmyisam_block_size 1024myisam_data_pointer_size 6myisam_max_sort_file_size 9223372036853727232myisam_repair_threads 1myisam_sort_buffer_size 8388608myisam_stats_method nulls_unequalmyisam_use_mmap FALSEndb-autoincrement-prefetch-sz 1ndb-cache-check-time 0ndb-connectstring (No default value)ndb-extra-logging 0ndb-force-send TRUEndb-index-stat-enable FALSEndb-mgmd-host (No default value)ndb-nodeid 0ndb-optimized-node-selection TRUEndb-report-thresh-binlog-epoch-slip 3ndb-report-thresh-binlog-mem-usage 10ndb-shm FALSEndb-use-copying-alter-table FALSEndb-use-exact-count TRUEndb-use-transactions TRUEndb_force_send TRUEndb_use_exact_count TRUEndb_use_transactions TRUEnet_buffer_length 16384net_read_timeout 30net_retry_count 10net_write_timeout 60new FALSEold FALSEold-alter-table FALSEold-passwords FALSEold-style-user-limits FALSEopen_files_limit 1024optimizer_prune_level 1optimizer_search_depth 62pid-file /home/jon/bin/mysql-5.7/var/tonfisk.pidplugin_dir /home/jon/bin/mysql-5.7/lib/mysql/pluginport 3306port-open-timeout 0preload_buffer_size 32768profiling_history_size 15query_alloc_block_size 8192query_cache_limit 1048576query_cache_min_res_unit 4096query_cache_size 0query_cache_type 1query_cache_wlock_invalidate FALSEquery_prealloc_size 8192range_alloc_block_size 4096read_buffer_size 131072read_only FALSEread_rnd_buffer_size 262144relay-log (No default value)relay-log-index (No default value)relay-log-info-file relay-log.inforelay_log_purge TRUErelay_log_space_limit 0replicate-same-server-id FALSEreport-host (No default value)report-password (No default value)report-port 3306report-user (No default value)safe-user-create FALSEsecure-auth TRUEsecure-file-priv (No default value)server-id 0show-slave-auth-info FALSEskip-grant-tables FALSEskip-slave-start FALSEslave-exec-mode STRICTslave-load-tmpdir /tmpslave_compressed_protocol FALSEslave_net_timeout 3600slave_transaction_retries 10slow-query-log FALSEslow_launch_time 2slow_query_log_file (No default value)socket /tmp/mysql.socksort_buffer_size 2097144sporadic-binlog-dump-fail FALSEsql-mode OFFsymbolic-links TRUEsync-binlog 0sync-frm TRUEsysdate-is-now FALSEtable_definition_cache 256table_open_cache 400tc-heuristic-recover (No default value)temp-pool TRUEthread_cache_size 0thread_concurrency 10thread_stack 262144timed_mutexes FALSEtime_format %H:%i:%stmpdir (No default value)tmp_table_size 16777216transaction_alloc_block_size 8192transaction_prealloc_size 4096updatable_views_with_limit 1verbose TRUEwait_timeout 28800
Для mysqld сервера, который является в настоящий момент рабочим, можно видеть текущую стоимость его системных переменных, соединяясь с этим и делая это заявление:
mysql> SHOW VARIABLES;
Можно также видеть некоторых статистических и индикаторы состояния для рабочего сервера, делая это заявление:
mysql> SHOW STATUS;
Система переменная и информация о статусе также может быть получена, используя mysqladmin:
shell>mysqladmin variables
shell>mysqladmin extended-status
Для полного описания всей системы и переменных состояния, см. Раздел 5.1.4, "Системные Переменные Сервера", и Раздел 5.1.6, "Переменные Состояния Сервера".
MySQL использует алгоритмы, которые очень масштабируемы, таким образом, можно обычно работать с очень небольшим количеством памяти. Однако, обычно Вы получаете лучшую производительность, давая MySQL больше памяти.
Настраивая сервер MySQL, две самых важных переменные, чтобы сконфигурировать key_buffer_size
и table_open_cache
. Следует сначала быть уверены, что Вы имеете, они устанавливают
соответственно прежде, чем попытаться заменить любые другие переменные.
Следующие примеры указывают на некоторые типичные значения переменных для различных конфигураций времени выполнения.
Если Вы имеете по крайней мере 256 МБ памяти и многих таблиц и хотите максимальную производительность с умеренным числом клиентов, используйте что-то вроде этого:
shell>mysqld_safe --key_buffer_size=64M --table_open_cache=256 \
--sort_buffer_size=4M --read_buffer_size=1M &
Если у Вас есть только 128 МБ памяти и только нескольких таблиц, но Вы все еще делаете большую сортировку, можно использовать что-то вроде этого:
shell> mysqld_safe --key_buffer_size=16M
--sort_buffer_size=1M
Если есть очень много одновременных соединений, подкачивая проблемы может произойти, если mysqld не был сконфигурирован, чтобы использовать очень немного памяти для каждого соединения. mysqld выполняет лучше, если у Вас есть достаточно памяти для всех соединений.
С небольшой памятью и большим количеством соединений, используйте что-то вроде этого:
shell>mysqld_safe --key_buffer_size=512K --sort_buffer_size=100K \
--read_buffer_size=100K &
Или даже это:
shell>mysqld_safe --key_buffer_size=512K --sort_buffer_size=16K \
--table_open_cache=32 --read_buffer_size=8K \
--net_buffer_length=1K &
Если Вы выполняете GROUP BY
или ORDER BY
операции на
таблицах, которые намного больше чем Ваша доступная память, увеличьте значение read_rnd_buffer_size
ускорять чтение строк после сортировки операций.
Можно использовать файлы опции в качестве примера, включенные с Вашим распределением MySQL; см. Раздел 5.1.2, "Значения по умолчанию Конфигурации Сервера".
Если Вы определяете опцию на командной строке для mysqld или mysqld_safe, это остается в силе только для того вызова сервера. Чтобы использовать опцию каждый раз выполнения сервера, поместите это в файл опции.
Чтобы видеть эффекты изменения параметра, сделайте что-то вроде этого:
shell> mysqld --key_buffer_size=32M --verbose
--help
Значения переменных перечисляются около конца вывода. Удостоверьтесь что --verbose
и --help
опции являются последними. Иначе, эффект любых опций, перечисленных после
них на командной строке, не отражается в выводе.
Для получения информации о настройке InnoDB
механизм хранения, см. Раздел
14.2.4.1,"InnoDB
Настраивающие Подсказки по производительности".