Mysql历史

1995年,MySQL 1.0发布,仅供内部使用。
1996年,MySQL 3.11.1发布,直接跳过了MySQL 2.x版本。
1999年,MySQL AB公司成立。同年,发布MySQL 3.23,该版本集成了Berkeley DB存储引擎。该引擎由Sleepycat公司开发,支持事务。在集成该引擎的过程中,对源码进行了改造,为后续可插拔式存储引擎架构奠定了基础。
2000年,ISAM升级为MyISAM存储引擎。同年,MySQL基于GPL协议开放源码。
2002年,MySQL 4.0发布,集成了后来大名鼎鼎的InnoDB存储引擎。该引擎由Innobase公司开发,支持事务,支持行级锁,适用于OLTP等高并发场景。
2005年,MySQL 5.0发布,开始支持游标,存储过程,触发器,视图,XA事务等特性。同年,Oracle收购Innobase公司。
2008年,Sun以10亿美金收购MySQL AB。同年,发布MySQL 5.1,其开始支持定时器(Event scheduler),分区,基于行的复制等特性。
2009年,Oracle以74亿美元收购Sun公司。
2010年,MySQL 5.5发布,其包括如下重要特性及更新。

  • InnoDB代替MyISAM成为MySQL默认的存储引擎。
  • 多核扩展,能更充分地使用多核心CPU。
  • InnoDB的性能提升,包括支持索引的快速创建,表压缩,I/O子系统的性能提升,PURGE操作从主线程中剥离出来,Buffer Pool可拆分为多个Instances。
  • 半同步复制。
  • 引入utf8mb4字符集,可用来存储 emoji表情。
  • 引入metadata locks(元数据锁)
  • 分区表的增强,新增两个分区类型:RANGE COLUMNS和 LIST COLUMNS。
  • MySQL 企业版引入线程池。
  • 可配置IO读写线程的数量 (innodb_read_io_threads, innodb_write_io_threads)。在此之前,其数量为1,且不可配置。
  • 引入innodb_io_capacity选项,用于控制藏也刷新的数量。

2013年,MySQL 5.6发布,其包括如下重要特性及更新:

  • GTID复制。
  • 无损复制。
  • 延迟复制。
  • 基于库级别的并行复制。
  • mysqlbinlog可远程备份binlog。
  • 对于TIME,DATETIME和TIMESTAMP进行了重构,可支持小数秒。DATETIME的空间需求也从之前的8个字节减少到5个字节。
  • Online DDL。ALTER操作不再阻塞DML。
  • 可传输表空间。
  • 统计信息的持久化。避免主从之间或数据库重启后,同一个SQL的执行计划有差异。
  • 全文索引
  • InnoDB Memcached plugin。
  • EXPLAIN可用来查看DELETE,INSERT,REPLACE,UPDATE等DML操作的执行计划,在此之前,只支持SELECT操作。
  • 分区表的增强,包括最大可用分区数增加到8192,支持分区和非分区表之间的数据交换,操作时显式指定分区。
  • Redo Log总大小的限制从之前的4G扩展至512G。
  • Undo Log可保存在独立表空间中,因其式随机IO,更适合放在SSD中。但仍然不支持空间的自动回收。
  • 可dump和loan Buffer pool的状态,避免数据库重启后需要较长的预热时间。
  • InnoDB内部的性能提升,包括拆分kernel mutex,引入独立的刷新线程,可设置多个purge 线程。
  • 优化器性能提升,引入了ICP,MRR, BKA等特性,针对子查询进行了优化。
    可以说,MySQL 5.6是MySQL 历史上一个里程碑式的版本,这也是目前生产上应用最广泛的版本。

2015年,MySQL 5.7发布,其包括如下重要特性及更新。

  • 组复制
  • InnoDB Cluster
  • 多源复制
  • 增强半复制
  • 基于WRITESET的并行复制
  • 在线开启GTID复制
  • 在线设置复制过滤规则
  • 在线修改Buffer pool的大小
对于MySQL历史表进行分表,你可以使用以下步骤: 1. 创建分表策略:决定如何将历史数据分散到不同的表中。常见的策略有按日期、按月份、按年份等。选择一个适合你业务需求的策略。 2. 创建分表规则:根据分表策略,确定每个分表的表名和结构。可以使用数据库管理工具或执行SQL语句来创建这些分表。 3. 迁移历史数据:将现有的历史数据根据分表规则迁移到相应的分表中。可以使用INSERT INTO SELECT语句或其他数据迁移工具来完成这一步骤。 4. 调整应用程序逻辑:在应用程序中,根据查询的日期范围动态选择要查询的分表,以保证查询的正确性。可以在代码中使用条件判断或者配置文件来实现动态选择分表的逻辑。 5. 定期维护:定期检查历史数据的增长情况,并根据需要创建新的分表。可以使用自动化脚本来完成这一步骤。 需要注意的是,在进行历史数据分表时,还需要考虑以下因素: - 索引:确保每个分表都有适当的索引来支持查询操作。 - 备份和恢复:确保备份和恢复历史数据分表的过程是可行的。 - 查询性能:分表后,查询历史数据可能需要跨多个表进行联合查询,需要评估查询性能并进行必要的优化。 总之,通过合理的分表策略和规则,你可以将MySQL历史表进行有效的分表,并提高查询性能和管理效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值