
一、mysql的50版本和51版本的区别
1、5.0增加了Stored procedures、Views、Cursors、Triggers、XA transactions的支持,增加了INFORATION_SCHEMA数据库;
2、5.1增加了Event scheduler,Partitioning、Pluggable storage engine API,Row-bases replication、Global级别动态修改general qyery log和show query log的支持。
二、mysql 4.1/5.0/5.1/5.5/5.6各版本的主要区别
1、4.1增加了子查询的支持,字符集支持utf8,group by语句增加了rollup,mysql.user表采用了更好的加密算法;
2、5.0增加了Stored procedures、views、cursors、Triggers、xa transactions的支持,增加了inforation_schema数据库;
3、5.1增加了event scheduler、partitioning、pluggable storage engine API,Row-bases replication、Global级别动态修改general query log和show query log的支持。
4、5.5的新特新
1) 默认存储引擎改为InnoDB;
2) 提高性能和可扩展性:
a、提高了默认线程并发数(innodb_thread_concurrency)
b、后台输入、输出线程控制(innodb_read_io_threads、innodb_write_io_threads)
c、主线程输入输出控制;(innodb_io_capacity)
d、操作系统内存分配程序使用控制;(innodb_use_sys_malloc)
e、适应性散列索引控制(Hash index)控制,用户可以关闭适应性散列功能;
f、插入缓存(insert Buffering)控制,用户可以关闭innodb的插入缓存功能;
g、通过快速加锁算法提高可扩展性,innodb不在使用代理(posix)线程,而是使用原生的独立操作来完成互斥和读写锁定。
h、恢复组提交(restored group commit)
i、提高恢复性能;
j、多缓存池实例;
k、多个回滚段(Muitiple Rollback Segments)、之前的innodb版本最大能处理1023个并发处理操作,现在mysql5.5可以处理高达128k的并发事务;
l、Linux系统固有的输入输出,mysql5.5数据库系统也提高了linux系统的输入输出请求的并发数;
m、扩展变化缓存,添加了删除缓存和清除缓存;
n、改善了日志系统互斥和单独刷新(Flush)列表互斥;
o、改善清除程序进度,在mysql5.5中清楚操作线程是独立的线程,并支持并发,可以使用innodb_purge_treads配置;
p、改善事务处理中元数据锁定。例如,事物中一个语句需要锁一个表,会在事物结束时释放这个表,而不是像以前语句结束时释放表;
3) 提高实用性:
a、半同步复制(Semi-synchronous Replication)
b、复制Heartbeat
c、中继日志自动恢复(Automatic Relay Log Recovery)
d、根据服务器过滤项复制(Repliation per server Filtering);
e、从服务器复制支持的数据类型转换(Repliation Slave Side Data Type Convertions)
4)提高易管理型和效率
a、建立快速索引(faster index Creation)
b、搞笑的数据压缩(Effcient Data Compression)
c、为大物件和可变长度提供高效存储;
d、增加了INFORMATION_SCHEMA表,新的表提供了与innodb压缩和事务处理锁定有关的具体信息;
5)提高可用性:
a、针对SIGNAL/RESIGNAL的新sql语句;
b、新的表/索引分区选项,mysql5.5将表和索引rang和list分区范围扩展到了非整数列和和日期,并增加了在多个列上分区的能力;
6)、改善检测和诊断:
a、mysql5.5引入了一个新的性能架构(performancn_shema,P_S),用于监控mysql监控mysql服务器时的性能;
5、5.6的新特性:
1、innodb现在可以限制大量表打开的时候内存占用过多的问题;(第三方已有补丁)
2、innodb性能增强,如分析kernel mutex,flush操作从主线程分离;多个perge现成,大内存优化等;
3、innodb死锁信息可以记录到error日志,方便分析;
4、mysql支持延时复制,可以让Slave跟master之间控制一个时间间隔,方便特殊情况下的数据恢复;
5、表分区功能增强;
6、mysql行级复制功能增强,可以降低磁盘、网络、内存等资源消耗;(只记录能确定行记录的字段即可)
7、用Binlog实现crash-safe;
8、复制事件采用crc32效验,增强slave/master复制数据一致性
9、新增bin_log_basename(以前variables里面没有binlog位置信息,对数据库的监管很不方便)
6、mysql 5.7相比mysql 5.6,有特别多的改进。团队主要关注速度,性能报告据之前版本提升了2至3倍。
新特性列表,主要改进:
提升mysql的安全性
改进了安装程序
mysql5.6中,mysql_install_db在创建数据库的时候提供选项来生成random password.
mysql5.7.4中,可以跳过-skip-random-password选项来默认生成随机密码
mysql5.7.5中,还是默认生成随机密码,但是选项改为-insecure
而现在,mysql5.7.6废弃了mysql_install_db,使用mysqld -initialize(formerly known as "mysqld -bootstrap",now deprecated)替代。




