MySQL bin log文件越来越大的问题
MySQL5.7版本默认开启保存二进制日志,文件以mysql-bin开头,时间一长,这些日志会越来会大,越来越多。
如果服务器空间有限或不需要保存二进制日志,如本地测试,则可以删除并在配置文件中关闭日志。
首先清除日志,最好不要直接清,而是通过以下命令
Home of Little Jelly
MySQL5.7版本默认开启保存二进制日志,文件以mysql-bin开头,时间一长,这些日志会越来会大,越来越多。
如果服务器空间有限或不需要保存二进制日志,如本地测试,则可以删除并在配置文件中关闭日志。
首先清除日志,最好不要直接清,而是通过以下命令
MySQL按字段指定顺序排序
SQL语句示例
MySQL 5.6升级到5.7注意点。
千万记得备份!
1. 安装方式出现变化,5.7安装完后需要先`初始化`再开启`mysqld`服务,且初始化完成后修改`root`密码的方式变了。
2. 一些变量不再支持,如 `thread_concurrency`,如果你配置了这个变量,删除它,不然不能开启`mysqld`服务。
3. `sql_mode`默认是`NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES`,即严格模式。
MySQL修改用户密码。
#### 方法1
适用于版本`<=5.6`的MySQL及已经重置过密码的MySQL5.7。
use mysql;
update user set password=password('123') where user='root' and host='localhost';
flush privileges;
MySQL数据库优化总结。
1. 尽量将多次查询放到一条SQL语句里执行,避免循环中的SQL查询,特别是数据库和网站分离时。
2. 对于left join,如果只是为了查询right表的某个字段,可选择使用配置文件来代替left join,将right的字段放入一个数组中,把数组序列化到一个文件中,需要用的时候反序列化,根据key查找value。
3. 使用数据库的内置函数
4. 只select用到的字段,而非select *
MySQL新建用户并授权。
创建新用户
use mysql;
# 任意主机,host用 %
create user ‘usename’@’host’ IDENTIFIED by ‘password’;
flush privileges;
MySQL事务隔离级别
数据不一致的情况
1. 脏读
A修改某行数据后,B读取,后A回滚,B再读,前后两次不一致。
2. 不可重复读
A多次读取某行数据,中间B修改数据并提交,A再读,数据不一致。
MySQL中`select`默认不加锁,但可以显式地给数据加上共享锁或排他锁。
共享锁
共享锁又称读锁,当一个事务给行加共享锁后,其它事务可以并发读取该行的数据,但任何事务都不能对该行进行写操作。
加共享锁写法: