数据库三大范式
第一范式:1NF是对属性的原子性约束,要求属性(列)具有原子性,不可再分解;(只要是关系型数据库都满足1NF)
第二范式:2NF是对记录的惟一性约束,表中的记录是唯一的, 就满足2NF, 通常我们设计一个主键来实现,主键不能包含业务逻辑。
第三范式:3NF是对字段冗余性的约束,它要求字段没有冗余。 没有冗余的数据库设计可以做到。
但是,没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。具体做法是: 在概念数据模型设计时遵守第三范式,降低范式标准的工作放到物理数据模型设计时考虑。降低范式就是增加字段,允许冗余。
慢查询及定位
MySQL默认10秒内没有响应SQL结果,则为慢查询
可以去修改MySQL慢查询默认时间
show variables like
"%slow%"
;
也可以通过这个SQL查询
show variables like '%quer%';
slow_query_log: off关闭状态 on
开启状态
slow_launch_time 默认超过2s为慢查询
slow_query_log_file 慢查询日志存放地
log_queries_not_using_indexes 默认是OFF,表示是否记录没有使用索引的查询
long_query_time默认是 10.000000,表示记录超过时间的慢查询
2. 运行如下命令即开启慢查询日志
set global slow_query_log = ON;
set global slow_launch_time=10;
set global log_queries_not_using_indexes = ON;-- 是否打开看个人需要
3.查看慢查询语句
通过以下语句查看慢查询执行的条数
show status like 'slow_quer%';
打开slow_query_log_file配置的地址打开log文件就能看到具体的慢查询的sql了