- 论坛徽章:
- 0
|
回复 1# send_linux
oracle,mysql都用过,Oracle是非常喜欢的数据库,虽然在互联网环境下,mysql大行其道,但是Oracle的某些优秀特性还是让其在核心场合不可替代。下面一个一个说下。
1. Oracle的高并发问题分析与解决;
(1)性能诊断,找出锁等待,长时间sql,以及是否有索引失效(sql未走索引)等,
(2)分析硬件性能是否能适应压力:cpu耗用,内存大小,内存分配情况,磁盘io,网络io
2. 高并发数据库架构设计;
高并发情况,通常和需要考虑数据量的问题。也就是高并发与大数据量(比如核心表单表超过千万)经常是相关的。单纯高并发的解决主要考虑缓存和io。
对于更常见的高并发与大数据量并存的情况,有以下几个方面的问题:
(1)索引:针对业务建立恰当的索引
(2) 分区:数据量很大的时候,根据情况使用分区表,并且,如果需要的话可以进一步分区,结合分区建立分区索引。
(3)合理规划表空间,合理分布IO到不同的磁盘,考虑使用阵列,并让数据库服务器到阵列使用专用的网络通道
(4) 应用层:合理使用多进程或者多线程运行(避免资源征用导致并发能力下降)
(5) 考虑使用应用层缓存
(6)如果并发量太大,可以考虑RAC
(7)进一步的可以考虑应用层的分库,分表。这个时候拆分规则由专门的规则层维护。方案虽然复杂,但是扩展性很好。
3. timesten内存数据库相关应用。
内存数据库,由于避免了磁盘IO,实时性很好。但是单机内存的量一般不会特别大,所以高并发是优势,但是对于数据量很大时,就需要考虑划分实时数据和历史数据的问题,让实时业务走内存库,历史数据查询类业务走磁盘库。其他更深入的没有了解,也写不出来了。
|
|