1.innodb_buffer_pool_size
如下查看
Innodb_buffer_pool_wait_free 这个参数即可
mysql> show global status like "%buffer_pool_wait%";
+------------------------------+-------+
| Variable_name | Value |
+------------------------------+-------+
| Innodb_buffer_pool_wait_free | 0 |
+------------------------------+-------+
1 row in set (0.00 sec)
如果值过大 需要增加对应buffer——pool的大小
innodb_buffer_pool_instances |
innodb_buffer_pool_instances 参数用于控制 InnoDB 缓冲池的划分方式。通过设置多个缓冲池实例,InnoDB 可以将缓冲池分割成多个独立的内存区域,从而减少并发访问的竞争,提高多核 CPU 上的性能。每个缓冲池实例都有自己的锁,这有助于减少锁竞争,尤其在高并发环境下,可以显著提高性能。
show engine innodb status; 查看innodb的状态
巡检记录
show variables like "%err%"
1./data/mysql/error.log 查看错误日志
show variables like '%slow%'
slow_query_log on 确定慢查询日志开启
cat /data/mysql/slow.log
当慢查询日志很大的时候,用mysqldumpslow命令进行查看(基本掌握)
show variables like '%long%';
long_query_time 慢sql的时间 50ms
超过这个时间会记录到慢查询日志
log_queries_not_using_indexes OFF(支持动态)
如果运行的sql语句没有使用索引,则mysql数据库同样会将这条sql语句记录到慢查询日志文件
set global log_queries_not_using_indexes=on;
(全量日志)查询日志 需要关闭
general_log OFF
general_log_file
/data/mysql/node1.log
二进制日志的位置:1、备份恢复2、主从复制
show variables like '%binlog%'
show global status 使用情况
binlog_cache_disk_usr,若增大,需要改变binlog_cache_size大小,基于会话,查看大小是否合理。
binlog_cache刷新条件:
sync binlog 0 1 n(n个事务刷新以次)
如何查看二进制日志:
mysqlbinlog --no-defaults -v -v --base64-output=decode-rows 二进制日志的名字
innodb_data_file_path = ibdata1:1024M:autoextend 1GB 默认10M
substring_index(字符串,分割符,需要的第几个字段)
select substring_index(host,':', 1) from information_schema.processlist;
统计每个IP连接数:
select substring_index(host,":", 1) ip, count(*) from information_schema.processlist group by ip;
到库级别的ip连接数查看:
select db, substring_index(host,":", 1) ip, count(*) from information_schema.processlist group by db, ip;
二进制与重做日志区别:
innodb_buffer_pool_size 设置大小为物理内存的50%---80%
innodb_buffer_pool_size
show global status like "%pool%"
innodb_buffer_pool_wait_free 值过大,需增加IPB大小
innodb_buffer_pool_instances 看是否合适,需要增大其大小,,依据物理内存的情况
redo_log_size 的大小,根据OS内存,一般64---128G 设置为256MB
表的创建:create table
alter table
drop table:删除表
delete table:删除表的记录
truncate table:删除表的记录,
delete 与truncate删除记录的区别:
1、delete只删除表的记录
2、truncate 删除速度块,在binlog中不记录
3、truncate 会重新设置自增加值,如索引值