简介
分析Blob和varbinary;
收集关于MySQL和MariaDB相关差异
Blob varbinary差异
引用自stackoverflow的简单说明,原文参考[1]:
VARBINARY在MySQL 5.0.2及以下版本上被绑定为255字节,在5.0.3及以上版本上被绑定为65kB。BLOB绑定到65kB。最后,VARBINARY实际上与BLOB是一样的(从可以存储什么的角度来看),除非您想保持与“旧”版本MySQL的兼容性。MySQL文档说:
在大多数情况下,您可以将BLOB列视为VARBINARY列,它可以任意大。
golang中如果直接使用byte[],将会生成longblob。Binary和VARCHAR的区别在于将不再需要指定字符集。varbinary类型最大数据存储是2^16-1,其实这个数字就是16位的最大数字—65535。计算下来刚好是65K。其实blob和varbinary非常像。
不同版本的mysql
mysql
已经给orcale
收购了,可能又闭源的风险。alisql
是阿里提供的一种数据库。TiDB
是一种类似MySQL的数据库。
MariaDB与MySQL
以下几点突出了MariaDB的优缺点。
优点
- MariaDB针对性能进行了优化,对于大型数据集,它比MySQL强大得多。从其他数据库系统可以优雅的迁移到MariaDB是另一个好处。
- 从MySQL切换到MariaDB相对容易,这对于系统管理员来说好像是一块蛋糕。
- MariaDB通过引入微秒级精度和扩展用户统计数据提供更好的监控。
- MariaDB增强了KILL命令,使您可以杀死用户的所有查询(KILL USER 用户名)或杀死查询ID(KILL QUERY ID query_id)。MariaDB也转而使用Perl兼容的正则表达 (PCRE),它提供比标准MySQL正则表达式支持更强大和更精确的查询。
- MariaDB为与磁盘访问,连接操作,子查询,派生表和视图,执行控制甚至解释语句相关的查询应用了许多查询优化。
- MariaDB纯粹是开源的,而不是MySQL使用的双重授权模式。一些仅适用于MySQL Enterprise客户的插件在MariaDB中具有等效的开源实现。
- 与MySQL相比,MariaDB支持更多的引擎(SphinxSE,Aria,FederatedX,TokuDB,Spider,ScaleDB等)。
- MariaDB提供了一个用于商业用途的集群数据库,它也支持多主复制。任何人都可以自由使用它,并且不需要依赖MySQL Enterprise系统。
缺点
- 从版本5.5.36开始,MariaDB无法迁移回MySQL。
- 对于MariaDB的新版本,相应的库(用于Debian)不会及时部署,由于依赖关系,这将导致必需升级到较新的版本。
- MariaDB的群集版本不是很稳定。
迁移到MariaDB的主要原因
- 首先,MariaDB提供了更多更好的存储引擎。NoSQL支持由Cassandra提供,允许您在单个数据库系统中运行SQL和NoSQL。MariaDB还支持TokuDB,它可以处理大型组织和企业用户的大数据。
- MySQL的平常(和缓慢的)数据库引擎MyISAM和InnoDB已分别在MariaDB中由Aria和XtraDB取代。Aria提供了更好的缓存,这对于磁盘密集型操作来说是有所不同的。
- MariaDB通过引入微秒级精度和扩展用户统计数据提供更好的监控。
- MariaDB的最新功能(如GIS,动态色谱柱支持等)使其成为更好的选择。
- MariaDB遵循良好的行业标准,同时发布安全公告和升级,并以正确的方式处理预发布的保密性和发布后的透明度。