我有 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/