都知道mysql5.7提供了json类型,mongodb也是有json,作为dba,经常有rd咨询如何选择的问题。
下面对比了5.7的json和mongodb的json,可以看出来应该怎么选择了。
一:测试数据准备
mysql> select count() from m_test;
±---------+
| count() |
±---------+
| 20999199 |
±---------+
mongodb
db.test2.count();
21000001
都是2千万的记录
mysql的buffer设置了12g,数据文件也是12g,基本上都是内存操作了
db.test2.find().limit(1);
{
"_id" : ObjectId("5e205cf703eb69e9acd2f0c7"), "user_basic_info" : {
"name" : "张三", "age" : "29", "address" : {
"city" : "上海", "province" : "上海" } }, "work_exprs" : [ {
"company" : "公司999999", "date_range" : "2001-2003" }, {
"company" : "公司999999999999", "date_range" : "2003-2004" } ], "educations" : [ {
"school" : "学校A", "date_range" : "1995-1998" }, {
"school" : "学校B", "date_range" : "1995-1998" } ], "name" : "张三999999" }
mysql> select * from m_test limit 1\G
*************************** 1. row ***************************
id: 35212
user_info: {
"name": "张三999999", "educations": [{
"school": "学校A", "date_range": "1995-1998"}, {
"school": "学校B", "date_range": "1995-1998"}], "work_exprs": [{
"company": "公司999999", "date_range": "2001-2003"}, {
"company": "公司999999999999", "date_range": "2003-2004"}], "user_basic_info": {
"age": "29", "name": "张三", "address": {
"city": "上海", "province": "上海"}}