对于海量数据高并发请求的数据库架构求教!
1、海量数据的处理众所周知,对于一些相对小的站点来说,数据量并不是很大,select和update就可以解决我们面对的问题,本身负载量不是很大,最多再加几个索引就可以搞定。对于大型应用,每天的数据量可能就上百万,如果一个设计不好的多对多关系,在前期是没有任何问题的,但是随着用户的增长,数据量会是几何级的增长的。在这个时候我们对于一个表的select和update的时候(还不说多表联合查询)的成本的非常高的。
2、数据并发的处理在一些时候,就是缓存。对于缓存,在高并发高处理的时候也是个大问题。在整个应用程序下,缓存是全局共享的,然而在我们进行修改的时候就,如果两个或者多个请求同时对缓存有更新的要求的情况下,应用程序会直接的死掉。这个时候,就需要一个好的数据并发处理策略以及缓存策略。
另外,就是数据库的死锁问题,也许平时我们感觉不到,死锁在高并发的情况下的出现的概率是非常高的,磁盘缓存就是一个大问题。
我的问题:我们现在的用户是不断增长的,数据库用的是链接服务器的形式,现在经常会出现死锁的情况,手动杀死死锁进程就会出现数据不一致的情况。
请问大家对于海量高并发数据库的设计和架构是如何实现的?
谢谢!
------解决方案--------------------
把热点表,热点字段先划分出来
想办法垂直拆分