- 论坛徽章:
- 0
|
本帖最后由 老男孩linux培训 于 2011-12-12 16:09 编辑
回复 78# to407
回复 73# 老男孩linux培训
恩。。。我的工作内容只做RDBMS和cluster方面, 其实对于存储方面还有互联网行业的解决方案比较感兴趣,
因为一些低成本的解决方案技术上反而要比传统行业来得新。
。。。。。。。。--------------------------------------------------------------------------------------------------------------------------
老男孩回复:生活中不缺少美,而是缺少发现。
也就是说,方法其实大家都知道,就是大公司做的更细致专业更到位,那些中小公司照猫画虎(有时因为开发水平及程序架构制约,N多公司开发人员连读写分离还搞不定)。
数据库的优化 其实常规方法就是大家经常说的那些,关键是怎么能做的恰到好处,或者说做到极至,你会一套刀法,我也会 可能用起来差距就很大。
在举个连锁加盟的例子 麦当劳/KFC等的模式就是成功一个然后 逐个地区推广普及,其实 运维和数据库的高并发也是如此。
优化也一样。。单单就是SQL语句调优。。就不简单。
虽然维护了多年的MYSQL,和ORACLE集群,但我的数据库经验依然不专业,这里和大家简单聊下。
希望数据库专家给补充。
数据库优化:
1.先硬后软,即硬件首先要跟上。到后面软的解决到瓶径了再二次增加硬件。
如:单盘sata-->单盘SAS-多盘SAS-SSD(或硬盘加速卡) 根据公司预算购买相关硬件。
NAS,SAN架构。。
在存储端,也看过如 3par的网状解决方案 来分散disk i/o 也是细节了,我们大部分的优化 归根结底都是在减少磁盘IO,或不使用磁盘。
2 尽量 数据库前端cache,包括使用NOSQL。
在ORACLE DB这一块,用RAC cluster引入cache fusion机制,把数据库的硬盘i/o瓶颈 移到memory端处理,来代替传统的单节点响应。
在数据库机Exadata方面用infiniband来替代fiber channel, 在数据库表结构层面,引入smart scan 减少select等SQL的i/o size
这是更细的细节了。
3 软件参数:如KEY BUFFER加大,INNODB BUFFER加大,SGA,DB_CACHE,SHARE_POOL等参数调整。
4 SQL优化,让SQL语句 尽量使用索引,对于ORACLE可绑定变量解析等等。
5 分库分表,再基础上再分库分表,进行业务拆分。横分纵分。
6 mysql多M多S,mysql cluster, ORACLE RAC+DG。
7 借助程序来分布式读写库(请注意,后面的库已经都是负载均衡)。
8 借助DNS来处理。
最后高可用切换软件都会发广播的,如果heart beat冲突了,请检查广播的地址是不是冲突,一般最好是直连心跳线。
数据库的高可用,离不开系统运维和开发。。
一切的大仗 饿仗 都是多个部门协同 搞定的。DBA,SA PROGRAMER 单独都是搞不定的。 |
|