mysql 优化

数据库的优化主要从4个方面来考量:

1,数据库设计

2,sql语句优化

3,数据库参数配置

4,恰当的硬件资源和操作系统

这个顺序也表现了这4个工作对性能的影响

 

1,数据库的概念怎么算合理呢?

答:要符合3NF 3范式(3个规范的模式,最高级别到6范式)有时,我们需要适当的逆范式。

2,sql语句的优化 

3,数据库的配置

4,适当的硬件配置,和操作系统。

 

数据库的3范式问题:

1范式是对属性原子性的约束,要求原子性就是不可再分解。

只要是关系型数据库,就自动符合一范式了。

2范式,是对记录的唯一性约束,要求有唯一标识,即是实体的唯一性。

一般说,我们在表中设计一个主键即可。

3,在满足2范式的时候再要求是否符合3范式。

是对冗余性的约束。

字段信息可以根据关联的关系派生出来就可以了。

通常是通过外键的方式来处理。

但是有时候,为了开发提高运行的效率,可以降低范式标准。

冗余1->多的时候,应该尽量把冗余字段放在1的那边。

 

sql优化的一般步骤

1,通过show status命令了解各种sql的执行效率。

2,定位执行效率较低的sql语句,(重点select)

3,通过explain分析效率低的sql语句执行情况

4,确定问题并且采用相应的优化措施

面试题:sql语句有几类?

dd(数据定义语言) create alter drop

dml语句(数据操作语言)insert update select

Select 语句

Dtl 语句,数据事物语言 commit  rollback  save point

Dcl 语句 数据控制语句 grant revoke 

 

show status; 这里面就是mysql一些状态,尤其以com打头的一些命令。

show status like ‘com%’;

等价于 show status session like’com%’;//显示控制台

show status global like ‘com%’;显示数据库从启动到查询

重点关心com_select    com_insert com_update com_delect

 说明从数据库启动,到现在进行过4次查询操作。

Connections :试图链接mysql 服务器的次数

Uptime:服务器工作的时间/秒数。

Show_queries:慢查询的次数,默认0

Show status like ‘Connections’;

Mysql 运行半年需要重启一下。 

链接3次。

如果这个次数很大的话,就需要考虑并发的问题了。

Show status like ‘updatetime’; 

 显示mysql启

动的秒数 

默认链接10秒中就会有一个慢查询。

show status like ‘slow_queries’;

 

mysql> show status like 'slow_queries';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| Slow_queries  | 0     |

+---------------+-------+

1 row in set (0.00 sec)

 

mysql> 

 

posted @ 2019-06-05 20:07  yahn~  阅读(175)  评论(0编辑  收藏  举报