Thread_stack:每个毗连线程被建设时,MySQL给它分派的内存巨细。当MySQL建设一个新的毗连线程时,必要给它分派必然巨细的内存仓库空间,以便存放客户端的哀求的Query及自身的各类状态和处理赏罚信息。
- mysql> show status like '%threads%';
- +-------------------------+---------+
- | Variable_name | Value |
- +-------------------------+---------+
- | Delayed_insert_threads | 0 |
- | Slow_launch_threads | 0 |
- | Threadpool_idle_threads | 0 |
- | Threadpool_threads | 0 |
- | Threads_cached | 0 |
- | Threads_connected | 1 |
- | Threads_created | 9649301 |
- | Threads_running | 1 |
- +-------------------------+---------+
- 8 rows in set (0.00 sec)
-
- mysql> show status like 'connections';
- +---------------+---------+
- | Variable_name | Value |
- +---------------+---------+
- | Connections | 9649311 |
- +---------------+---------+
- 1 row in set (0.00 sec)
如上:体系启动到此刻共接管到客户端的毗连9649311次,共建设了9649301个毗连线程,当前有1个毗连线程处于和客户端毗连的状态。而在Thread Cache池中共缓存了0个毗连线程(Threads_cached)。
Thread Cache 掷中率:
- Thread_Cache_Hit = (Connections - Threads_created) / Connections * 100%;
一样平常在体系不变运行一段时刻后,Thread Cache掷中率应该保持在90%阁下才算正常。
内存姑且表
tmp_table_size 节制内存姑且表的最大值,高出限值后就往硬盘写,写的位置由变量 tmpdir 抉择
max_heap_table_size 用户可以建设的内存表(memory table)的巨细.这个值用来计较内存表的最大行数值。
Order By 可能Group By操纵多的话,加大这两个值,,默认16M
- mysql> show status like 'Created_tmp_%';
- +-------------------------+-------+
- | Variable_name | Value |
- +-------------------------+-------+
- | Created_tmp_disk_tables | 0 |
- | Created_tmp_files | 626 |
- | Created_tmp_tables | 3 |
- +-------------------------+-------+
- 3 rows in set (0.00 sec)
- 如上图,写入硬盘的为0,3次中间表,声名我们的默认值足够用了
mariadb 保举设置
- 留意这里只保举innodb引擎
- 内存设置只存眷有注释的行
- [mysqld]
- datadir=/var/lib/mysql
- socket=/var/lib/mysql/mysql.sock
- default-storage-engine=INNODB
-
- character-set-server=utf8
- collation-server=utf8_general_ci
-
- user=mysql
- symbolic-links=0
-
- # global settings
- table_cache=65535
- table_definition_cache=65535
-
- max_allowed_packet=4M
- net_buffer_length=1M
- bulk_insert_buffer_size=16M
-
- query_cache_type=0 #是否行使查询缓冲,0封锁
- query_cache_size=0 #0封锁,由于改表操纵多,掷中低,开启耗损cpu
-
- # shared
- key_buffer_size=8M #保持8M MyISAM索引用
- innodb_buffer_pool_size=4G #DB专用mem*50%,非DB专用mem*15%到25%
- myisam_sort_buffer_size=32M
- max_heap_table_size=16M #最大中间表巨细
- tmp_table_size=16M #中间表巨细
-
- # per-thread
- sort_buffer_size=256K #加快排序缓存巨细
- read_buffer_size=128k #为必要全表扫描的MYISAM数据表线程指定缓存
- read_rnd_buffer_size=4M #已排序的表读取时缓存,假如较量大内存就到6M
- join_buffer_size=1M #join语句多时加大,1-2M
- thread_stack=256k #线程空间,256K or 512K
- binlog_cache_size=64K #大事宜binlog
-
-
- # big-tables
- innodb_file_per_table = 1
- skip-external-locking
- max_connections=2048 #最大毗连数
- skip-name-resolve
-
- # slow_query_log
- slow_query_log_file = /var/log/mysql-slow.log
- long_query_time = 30
- group_concat_max_len=65536
-
- # according to tuning-primer.sh
- thread_cache_size = 8
- thread_concurrency = 16
-
- # set variables
- concurrent_insert=2
运行时修改 (编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|