多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] # 一主多从问题 常见的服务器架构有一主多从,但是中间没有主从复制的高可用的组件 ![](https://box.kancloud.cn/ba7b2b71515c95a094df7721c6892d19_397x157.jpg) 一旦主服务器出现故障,从服务很难自动切换成主的或者中间有可能出现问题,这时候需要DBA来手动的切换,切换完再和新的主同步,这样是很耗时的 # 备份 最好不要在主库上数据库备份 大型活动前取消这类计划 # 效率底下的sql mysql不支持多核运算,就是一个sql只能分给一个cpu 大多数sql能通过慢查询优化sql来解决 # 连接数 大量的并发:数据库连接被占满 (max_connections默认100) 超高CPU使用率,因CPU资源耗尽而宕机 # IO 磁盘IO性能下降,要定期维护,活动的时候调整备份计划等一系列的定时任务 网卡流量 网卡IO被占满 如何避免无法连接数据库的情况: 1. 减少从服务器的数量 2. 进行分级缓存 3. 避免使用select *查询 4. 分离业务网络和服务器网络 # 大表带来的影响 一般会带来慢查询产生 对DDL操作影响 修改表结构很难,如果被从库复制过去简直灾难 风险: 会造成很长时间的主从延迟,因为现在的mysql主从复制一般使用的是单线程,mysql5.6支持多线程复制 影响正常的数据操作 建立索引需要很长时间 风险: mysql版本<5.5 建立索引会锁表 mysql版本>=5.5 虽然不会锁表但会引起主从延迟 分库分表 把一个大表分成多个小表 难点: 分表主键的选择 分表后跨分区数据的查询和统计 可以历史数据归档,减少对前后端业务的影响 难点: 归档的时间点的选择 如何进行归档操作,归档的话对一些现有的数据进行删除.如果表有上亿行,那... # 大事务带来的影响 事务是数据库系统区别于其他一切文件系统的重要特征之一 事务是一组具有原子性的sql语句,或是一个独立的工作单元 # 内存大点好 内存不仅对查询有帮助,对写入也有帮助 CPU --写入--> 内存 --写入--> 磁盘 写入可以像读一样,可以写入内存,最终虽然是需要到磁盘,但是速度会快,而且可以多次写入内存一次写到磁盘 # 硬件选择 ## 磁盘RAID卡 ![](https://box.kancloud.cn/720fe134b2127e3e0bc91ae82601befe_554x162.jpg) ## 固态存储 SSD PCI-E SSD 更好读写性能,更好支持并发 缺点:写入的时候要对写的进行擦除操作,相比机械更容易损坏 SSD特点: 1. 使用SATA接口,可以替换传统磁盘不需任何改变 但是把SATA3.0(6G) -->SATA2.0(3G) 性能会浪费 2. SATA接口的SSD支持RAID技术 PCIe卡特点 1. 无法使用SATA接口,需要独特的驱动和配置 2. 价格比SSD贵,性能要好(他会占用服务器的一些内存) 使用场景 1. 适用于存在大量随机I/O的场景 2. 使用于解决单线程负载的I/O瓶颈 # 网络存储SAN和NAS SAN和NAS是2种外部文件存储设备加载到服务器上的方法 SAN --光仟-->服务器 --硬盘--> SAN SAN设备通过光仟连接到服务器,设备通过块访问接口访问,可以把他当做硬盘使用 大量顺序读写,读写I/O,缓存,I/O合并,随机读写,不如本地RAID磁盘 NAS 设备通过网络连接,通过基于文件的协议如NFS或SMB来访问 适用场景 数据库备份 # CPU 对于并发比较高的场景CPU的数量比频率重要 对于CPU密集性场景和复杂SQL频率越高越好