正文
因此,访问链路最佳实践可以总结为以下几点:
-
建议使用高安全访问模式,特别是短连接应用,高安全访问模式具有缓冲短连接对数据库冲击的效果。
-
在标准访问链路切换到高安全访问链路时,切换过程最多会有
30
秒不可访问。
-
如果
ECS
使用VPC
,那么数据库只能选择高安全访问链路。
-
访问链路上需要注意应用不要使用
IP
来访问数据库,避免由于
IP
变化导致故障。
架构设计就像我们修建一幢坚固的房子一样,需要有整体的布局设计,同时在细节上材料的选择以及施工质量的保障也同样重要。在历年的双11中,由于业务流量的突增,那些平时没有暴露出来的问题往往在这个时候爆发出来,所以我们要把数据库这块地基打好,细节上做好,架构设计就需要我们在这些上下功夫。
读写分离是常见的架构设计手段。RDS支持只读节点,主库主要承担写和实时性要求高操作,一些复杂的分析计算业务操作最好不要放在主库上执行,而是选择放在只读节点运算。使用读写分离架构时,首先数据库版本需要升级到MySQL5.6版本;同时目前RDS最多只支持五个只读节点。在读写分离时,延时是我们必须关注的重点,目前RDS上通过源码改进并行复制,提升复制性能,降低了主库与备库之间数据同步的延迟。
正如上图的压测结果显示,5.6版本较5.5版本,在性能上有很大的提升。目前,RDS只有5.6版本支持只读实例,应用可以做读写分离;支持在线添加字段、索引和重建数据表,应用不再被阻塞。
引擎选择是数据库设计中很基础的一点,这里重点介绍下Tokudb引擎。日志型应用的特性是:写操作很高、读操作相对较少。Tokudb引擎压缩比Innodb引擎高出5~7倍,适合写多读少的应用;同时,Tokudb引擎online ddl速度较快,适合表很大需要经常DDL操作的应用。同样,Tokudb引擎缺点也十分明显,它会增加响应时间;同时online ddl对大字段不适用。
这里需要注意一点的是:在5.5版本以后innodb 引擎已经是MySQL的默认引擎,建议将Myisam引擎转换为innodb引擎,会避免很多问题的发生。
对于大字段,数据库的更新写入压力过大,
update
、insert、delete
会导致
binlog
日志急剧增加,导致实例磁盘报警。因此在数据库设计时,要注意规避大字段引起的问题。常见的大字段有
varchar
(
8000
)、
text
、
blob
、
clob
(
sqlserver/mysql
),使用时建议将大字段拆分出主表或者存入到其他存储系统中。