大表大事物对mysql性能的影响

大表对mysql性能的影响

什么叫大表?

不同的存储引擎有不同的限制,单行超过千万行 或者表数据文件超过10G都可以称之为大表

大表对查询的影响

慢查询:很难再一定的时间内过滤出所需要的表数据

大表对DDL的影响

(1)建立索引需要很长的时间
风险:mysql 5.5以前的版本建立索引会锁表。
	 5.5版本以后虽然不会锁表但是会引起主从延迟。
(2)修改表结构需要很长的时间
风险:会造成时间的主从延迟
	 影响数据库操作(主库上进行表结构的修改 这个表的所有操作会阻塞)

处理数据库中的大表

(1)分库分表 把一张大表分成小表
难点:分表主键的选择
分表后跨分区数据的查询和统计
(2)大表的历史记录的归档(特别是日志表)可以减少前后端业务的影响
难点:归档时间的选择
如何进行归档的操作

大事物对mysql性能的影响

什么叫大事物?

运行时间比较长 操作数据比较多的事物

什么叫事物?

数据库系统中区别于其他一切文件系统的重要特性之一
**是一组具有原子性的sql 独立工作单元 **

事物的特性(ACID)

原子性:不可分割的最小单元
一致性:事物从开始到结束 完整性没有破损
隔离性:一个事物对数据库进行操作 未提交完之前对其他事物不可见
持久性:一旦事物提交则所修改的就会永久保存到数据库

大事物的风险

(1)锁定太多的数据 造成大量的阻塞和锁超时
(2)回滚的时候所需时间比较长
(3)执行时间长 容易造成主从延迟

如何处理大事物

(1)避免一次性处理太多数据
(2)移除不必要在事物中的select操作

你可能感兴趣的:(mysql)