首先是对于数据库,一般都会用到,开始是自己在本地搭建一个小的单机数据库,然后进行一些增删改查的操作,然后或许会使用一些函数(包含存储过程),视图,等进行一些实操,这样之后觉得自己差不多了,然后发现面试或者工作中实际应用会存在很多问题。
出现问题的原因是因为没有在实际的业务场景去操作。
比如:一个小说网站的数据库是什么样,移动运营商的数据库是什么样,或者常用的电商数据库又是怎样,银行的数据库,博客的数据库等等
这些不同业务场景的数据库使用就会有不同的数据库选择,还有不同需求:比如安全,数据量,数据时效等问题
数据量首先是单个库,如果数据量很大就会造成压力那么需要进行相应的优化
首先是分库要分库一般就是主从,主库用来写,从库用来读
那么主从同步又会出现一个问题就是同步的一致性问题。如果数据还在写没有同步进数据库,查不到
这就是上面说的问题,这种情况基本对于主从同步的数据库都会存在,但是不同业务场景可能会有不同的解决方案
比如是一个破小说网站没钱也没钱搞中间件缓存,Redis等,反正又不是必须得立马查到,那么就可以在用户查询的时候写什么正在手打中(经常看小说会有这种体验)
还有像银行,移动这些业务在之前一直都说的是进行转账或者话费充值一直说的是两个小时内到账,那么我们可以想到的事这些行业会通过各种安全检测之后发现没有任何问题才会进行同步到你所查询的库(也许也可以很快但是流程得走完),比如充话费有些时候会几分钟就有短信有些就好久。
使用中间件虽然可以立马查到但是新的组件会带来新的问题
但是对于一些电商的下单情况就必须使用,如果确认下单之后很久没有结果体验感太差,
所以不同场景的需求不同,现在我也就在这些业务场景进行过操作(银行没有)后面有新的场景会进行添加。以供自己进行总结和分析