mysql - 选择 MySQL vs 寻找 MongoDB

标签 mysql mongodb

我有 2 个数据库:一个在 mySql 中,一个在 MongoDB 中,里面有相同的数据...... 我在 MySQL 中执行以下操作:

Select tweet.testo From tweet Where tweet.testo like ‘%pizza%’

这是结果:

1627 rows in set (2.79 sec) 

但是如果我在 mongo 中执行:

Db.tweets.find({text: /pizza/ }).explain() 

这是结果:

nscannedObjects" : 1606334,
"n" : 1169,

或者如果我执行:

Db.tweets.find({text: /pizza/i }).explain() 

这是结果:

"nscannedObjects" : 1606334,
"n" : 1641,

为什么mysql/mongo find中的行数/文档数不一样?

最佳答案

Why the number of rows/document in mysql/mongo find is different??

可能有 1000000000000000 个原因,包括那天的太阳温度。

MongoDB 和 MySQL 是两种完全独立的技术,如果您希望两者保持同步,则需要在两者之间使用某种复制器。你没有让我们知道是否是这种情况。

此外,我们不知道您的编码、服务器设置、网络设置和其他一切,所以我们甚至无法开始回答这个问题。

一个好的答案是你看到这个的原因是因为两者之间的数据不同......

至于区别:

Db.tweets.find({text: /pizza/ }).explain()

Db.tweets.find({text: /pizza/i }).explain() 

这是因为 MySQL,默认情况下,我认为查询是小写的,而 MongoDB(我知道)本身不区分大小写(这个 i 让它不区分大小写)。

但是关于复制器,这里有一个很好的复制器:https://docs.continuent.com/wiki/display/TEDOC/Replicating+from+MySQL+to+MongoDB

关于mysql - 选择 MySQL vs 寻找 MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13930760/

相关文章:

Mysql 文件夹和文件

mongodb - 按 id 对 Mongo 文档进行分组,并按时间戳获取最新文档

c# - 如何解决MySQL中的空值?

带有 MySQLi 提取的 PHP 不会在 LEFT JOIN 上返回带有 NULL 的行

mysql - 插入已排序的 SQL 条目

mysql - maxscale 读/写拆分与 MYSQL 主/从

javascript - 如何在javascript中迭代光标

arrays - 如果存在则将对象插入数组,否则在 MongoDB 中设置对象

node.js - Mongodb 使用 mongoose 通过管道更改流

javascript - 如何使用 MongoDB 验证输入?