项目优化Day02-01-本章内容介绍
1.本地连不上Linux上的Mysql:
1.检查Mysql驱动是不是对应LinuxMysql的版本(我本地的是八点几的Mysql,Linux是五点几的Mysql,本地用的驱动版本是8.2.0,
Linux用的驱动是5.1.49的)
2.连接Linux的Mysql的时候注意jdbc:mysql://localhost:3306?useSSL=false后面加上useSSL=false跳过证书验证
2.目前我们开发的系统可能还存在哪些问题?
移动端可能有有很多用户在同时使用我们这个系统,它通过我们的系统来进行菜品的浏览,然后添加购物车,最终下单等等,这些操作最终都会反应成一个SQL,最终来操作我们的数据库。现在我们的关注点在数据库这个地方,也就是说当前咱们这个系统里面,对应的只是部署了一台数据库,也就是说我们所有的数据库操作最终都会把压力压在我们单一的服务器上面去。读指的就是我们这些查询操作,比如说select,然后写指的就是我们的增删改这些操作,所有的压力都会由一台数据库来承担,这样的话就会造成我们这台数据库服务器他的压力是比较大的。而且还存在一个问题就是如果这个数据库服务器它的磁盘损坏了,这个数据就丢失了,因为我们所有的数据都在这一台服务器上,并没有备份,所以他损坏了,我们的数据就完全丢失了,相当于没有任何备份。
我们这一章就来解决:
读和写所有压力都由一台数据库承担,压力大。数据库服务器磁盘损坏则数据丢失,单点故障。
具体怎么优化??
刚才是一台数据库,现在是两台数据库(也可以多台数据库),这两个数据库,一个叫master主库,一个叫做slave从库。
这个过程是什么样的?我们移动端用户他如果要浏览菜品,对应的要发查询的SQL,也就是select语句,如果是查询的雨具,她就会查我们的从库slave,也就是说查询操作是由从库来分担的,如果是增删改的操作,比如说我们添加到购物车,下单,需要向某个表里面来插入数据,如果是这种增删改的操作,这种我们统一称为写操作,他操作的是master主库。所以原先是一台数据库来承担所有的增删改查,而现在相当于是实现了读写分离。读的是从库,写的是主库。访问压力也就降低了。
问题:写的是主库,读的是从库,从库这边的数据是怎么来的??
这里会涉及到数据同步,也就是写操作是写到主库上,同时会把主库的数据同步到我们的从库这边来。这样的话我们从库slave这边来执行查询的话,也可以查询到响应的数据。这种结构叫做Mysql的主从复制。这是由Mysql给我们提供的一种模式。主从复制就是将我们主库的数据同步到从库数据的过程。
通过Mysql的主从复制就可以实现从库里面的数据和主库里面的数据保持一致。
Mysql主从复制是Mysql底层就支持的,我们只需要把咱们这些数据库给它创建出来,然后按照他的要求去进行相应的配置就可以实现了。