MySQL日志:
二进制日志:(mysql-bin.00000*......) 记录所有更改数据的语句 可以帮助我们恢复数据库 修改配置文件: log-bin=mysql-bin expir_logs_days=10 //二进制日志删除的时间(备份日期多加7天) max_binlog_size=2048M //不能设置大于4096M值,默认1024M show variables like ‘log_%’; //查询计算机中所有的日志状态 show binary logs; //查看当前正在往哪个日志里面写 #mysqlbinlog mysql-bin.000001 //查看日志 reset matster //清空所有二进制日志 purge master logs before "年月日" //清除这个时间前的数据 还原数据库:(通过二进制日志) 把曾经执行过的命令在执行一次。对数据没有任何影响,不是真实存数据的 #mysqlbinlog --stop-data=‘2017-12-2 9:02:28’ mysql-bin.000005 | MySQL-u root -p --stop-data=‘’ //查看二进制日志中错误操作的最后一步之前的操作,用二进制日志弥补丢失的几秒钟的数据。还原这个时间点之前的所有的操作 查询日志: 记录建立客户端连接和执行的语句
错误日志:(mysql-err.err) 启动停止运行期间的错误 配置文件:(没有自己写) log-error=mysql-error show variables like ‘log_error’; #mysqladmin -u root -p flushlogs
慢查询日志: 记录所有超过时间的日志,规定时间内的查询 配置文件里写: log_slow_queries=slowlog //slowlog日志文件的名字 long_query_time=10 (时间单位:秒) 重启服务 select benchmak(10000000000,password(‘newpwd’));//测试的时候使用这个
通用日志: 记录用户操作 所有人直接性的操作 log=log-tong 可以使用cat直接查看
mysql查询时遍历查询,一条一条的查询 [root@dzs ~]# mysqladmin refresh 刷新日志 [root@dzs ~]# mysqladmin flush-logs 刷新日志 flush privileges 刷新日志
MySQL优化参数,优化思路:
最大连接数为:16834(默认为100,不准超过16834) show variables like 'max_connections'; //查看数据库的最大连接数 set global max_connections=10000; //修改数据库的最大连接数 公司量少:1-9万之间 alter table ku.biao disable keys; //禁用索引(公司量少:1-9万之间) set unique_check=0 //禁用外键 set foreign_key_checks=0 //禁用外键健康检查 set autocommit=0; //禁用自动提交
MySQL参数调优:
query_cache_size=8192M //缓存区的大小 query_cache_type=1 //缓存的类型 0 不开启缓存区 1:no_sql_cache 所有的都得进入缓存查询 2:sql_cache 所有的东西默认的在硬盘中找 key_buffer_size = 16M //索引缓存区的大小(取决于内存的大小,内存的十分之一) table_open_cache=64 //同时打开的表的个数(根据自己公司的表的个数来定。也可以是table_cache=64) sort_buffer_size= 512K //排序缓存区的大小(数越大,速度越快。数据库里面的数据往出读的时候需要排序。默认是2M。200次排序约等于1K。) read_buffer_size=256K //每个表分配缓存区的大小(当有线程连续扫描该表时,才会使用这个缓冲区,不读就释放该大小。) read_rnd_buffer_size=512K //连续扫描或连续读取,并且有特定的排序的时候才会使用这个 >set session read_rnd_buffer_size=512K;(会话当中这个数得随时随地的修改) innodb_buffer_pool_size=16M //innodb引擎的时候调这个 myisam_sort_buffer_size=8M max_connections=10000 innodb_fush_log_at_trx_commit=0 0 每隔1秒 什么时候把缓冲区的数据写入到日志当中,并把日志写入到硬盘里(缺点:不安全。优点:速度快) 1 依照事务的提交写入日志(缺点:速度慢。优点:安全) 2 每次提交事务写入日志,每隔1秒钟写入硬盘(缺点:丢失1到2秒钟的数据) back_log=8192 //多少个请求可以放到列队当中(公司在某一时间的有大的访问的时候使用) interactive_timeout=10 //关闭服务器连接时,等待的时长 thread_buffer_size=512K //每个需要排队线程分配的缓冲区的大小 wait_timeout=6000 //关闭一个连接等待的时间(默认28800s)