读一读

打开my.ini配置文件,查找到

QQ图片20170925105614.png

这里配置的就是日志的位置,有个叫slow的


show status like "%uptime%";  mysql的启动时间

show status like "com_Select"  查询的次数

show status like "%connections%"  当前的链接数

show variables like "%long%"  慢查询的规定时间


安全模式启动

QQ图片20170925105256.png


show variables like "%long%";

有个long_query_time的设置

查询时间超过这个设置时间的就是慢查询


1.脏读

就是在一个事务读取了另一个事务还没有提交的数据。

但是随后,另一个事务发生了错误,回滚了,那么..

2.不可重复读

就是在一个事务中多次读取数据确是不一样的

期间可能被其他的事务提交修改了

3.幻读

就是用户在用事务提交修改了东西后,

又有其他的事务修改了类容,

刚刚那个用户核对事务的修改时,发现不对


更新删除的时候如果出现这个,但是你确实是要做这种操作

可以设置一下

SET SQL_SAFE_UPDATES=0;

取消限制


可以登陆到mysql中,用mysql命令行

使用命令show processlist;查看已经存在的进程

如果无意外可以看到大量的sleep状态的链接

然后用命令show variables like "%timeout%";

QQ图片20170923105311.png

可以看到,interactive_timeout和wait_timeout为默认的28800

就是长达8小时,可以优化成120秒

找到programData里面的mysql的配置文件my.ini(不同系统不同位置)

在[mysqld]下面添加

interactive_timeout=120

wait_timeout=120

重启就好了。


其实就是主键,用PRIMARY定义

id int Primary Key,

与普通索引不同的就是列的值必须是唯一的,但允许有空值和主键不同。如果是组合索引,则列值的组合是唯一的。

Create Unique index 索引名 on table_name(字段(长度));
Alter Table table_name Add Unique Index index_name(字段...);

就是普通命令创建的索引,可以选择一个整齐的,数据类型不复杂的列来建立。

Create index 索引名 on table_name(字段(长度));
Alter Table table_name Add Index index_name(字段...);

B-Tree,因为是顺序存储数据,所以可以使用order by和group by操作。

  1. 索引大大减小了服务器需要扫描的数量。

  2. 索引可以帮助服务器避免排序和临时表。

  3. 索引可以将随机IO变成顺序IO。