mysql 优化(五)

来源:互联网 发布:艾默生网络能源年终奖 编辑:程序博客网 时间:2024/06/05 11:18

9. 垂直分表

水平分表:是把一个表的全部记录信息分别在存储到不同的分表中(以一条记录信息为最小单位)

垂直分表:是把一个表的全部字段分别存储到不同的表里变(按字段分表,一个或多个字段存储在一个表中)

有的时候,一个数据表设计好了,里边有许多字段,但是这些字段有的是经常使用的,有的是不常用的。

例如,一个数据表有20个字段,其中10个字段是常用的,后10个字段是不常用的

     那么在操作常用字段的时候,就不得不给其他不常用的字段也分配一定的资源进行操作。

 

数据表:

会员表user_id  登录名  密码  邮箱 手机号码  身高 体重  性别 家庭地址  身份证号码

以上表,红色是常用的,蓝色的是不常用的

为了使得常用字段运行速度更快、效率更高,把常用字段给跳出来,因此数据表做以下设计:

会员表()字段:user_id 登录名  密码 邮箱  手机号码

会员表()字段:user_id 身高  体重 性别  家庭地址 身份证号码

 

以上把会员表根据字段是否常用给分为两个表的过程就是垂直分表。

10. 架构设计

架构设计也称为集群设计,由多台mysql服务器共同支撑网站的运行,每台服务器分担的工作就比较少,运行速度快,效率高

mysql数据库在运行的时候一般查询/写入的sql语句比例为 7/1,并且查询消耗的资源比写入的要更多

因此可以设计一个“主从模式”的集群,与之前redis的主从模式使用模式一样


维护备份的集群架构:

主从模式的集群架构:

11. 慢查询日志收集

我们要把系统里边一些执行速度非常慢的sql语句给收起来,并做分析优化,使得其执行速度加快

开启慢查询语句:set global slow_query_log =1;


设置慢查询判断时间阀值:set long_query_time=2;


原创粉丝点击