StoneDB与MySQL的兼容性如何?
StoneDB高度兼容MySQL 5.6、5.7协议和MySQL生态等重要特性,支持MySQL常用的功能及语法。
由于StoneDB本身的一些特性,部分操作和功能尚未得到支持,如不支持创建索引、不支持删除数据等。
StoneDB有自己的优化器吗?
StoneDB是在原生的MySQL加入的存储引擎,StoneDB有自己的优化器,但StoneDB实际也会利用原生的MySQL的优化器做一些查询解析和重写机制。
StoneDB为什么没有唯一约束?
列式存储具有数据压缩特性,数据压缩比率是由压缩算法、列的数据类型、数据重复度等决定的。如果列有唯一约束,那么列中每行的数据都是唯一的,数据压缩比率就低。在InnoDB和StoneDB下,分别向具有唯一值的列插入6000万条数据,InnoDB表大小16G多,StoneDB表大小5G多,压缩比率为3:1多,而一般情况下是可以达到10:1以上的。
StoneDB需要创建索引吗?
如果数据库使用的是B-Tree或者B+Tree的数据结构,在查询少量结果集的情况下,通过索引是能高效定位到数据行的。但StoneDB利用的是知识网格技术,只需要对数据包解压缩,是不需要创建索引的。
StoneDB支持事务吗?
事务分为安全性事务和非安全性事务,严格遵守ACID属性的属于安全性事务。由于StoneDB没有redo和undo,属于非安全性事务,所以是不支持事务的。
StoneDB的表和其他存储引擎的表能关联查询吗?
默认情况是不允许跨存储引擎的表关联查询的,可以修改参数stonedb_ini_allowmysqlquerypath=1,这样是支持跨存储引擎的表关联查询的。