免费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学习地请关注本文评论
领取专属 10元无门槛券
私享最新 技术干货