后端程序员和DBA的MYSQL进阶必备方案及知识点总结!

免费java学习地请关注本文评论

MYSQL

mysql

MySQL是后台程序员及BDA人员的重要一环,如mysql是一个关系型数据库管理系统,mysql在国内的关系型数据库上的占有率是非常高的,大小公司都在用,大有集群分片方案,小到单机方案。因为其在国内有大量的成功方案和相关的研究技术文章,让新手或中级人员能快速找到相关的资料来上线及进阶,而对于非关系型数据库,关系型数据库主要有以下两个优点。

关系型数据库的优势

1. 复杂查询

SQL语句拼接多个表以及多个表之间做非常复杂的数据查询操作。

2. 事务支持

使得对于ACID要求很高的业务操作得以实现,数据访问变得安全。

ACID

原子性

整个事务中的所有操作,要么全部完成,要么全部不完成,不可能部分操作被执行而部分操作没被执行。事务在执行过程中如果发生错误,会被强制回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。

一致性

一个事务可以封装状态改变,事务必须始终保持系统处于一致的状态,不管在任何给定的时间并发事务有多少。

隔离性

隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。如果有两个事务,运行在相同的时间内,执行相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。这种属性有时称为串行化,为了防止事务操作间的混淆,必须串行化或序列化请求,使得在同一时间仅有一个请求用于同一数据。

持久性

在事务完成以后,该事务对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。

适合的场景

mysql使用场景

百万级的数据,无论侧重OLTP还是OLAP,建议直接使用MySql了,因为mysql可以支撑起整个业务的需要,主要侧重如何去优化mysql,而如果数据过千万、亿级的数据直接上nosql的大数据方案,这个另外开篇幅去讲解。

优化方案

主要通过下面的方式来优化:

1、索引,索引并不是越多越好,索引越多对插入数据时的性能影响越大。

2、select语句只需返回需要的字段数据减少使用 * 去获取数据。

3、减少全文索引,如何去使用类似like这种关键词。

4、减少嵌套子查询。

5、通过解读官方的配置文件来优化各个参数来优化。

结尾

学习mysql

mysql如果优化得好,单机已可以支撑大量用户,具体数字要看服务器配置等硬件情况,下一篇介绍如在数据量极大的情况做mysql的负载均衡和分片方案。

免费java学习地请关注本文评论

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180210A0MLRB00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券