推荐工具
RoboMongo
推荐书目
50 Tips and Tricks for MongoDB Developers
Related Blogs
Snail in a Turtleneck
boyhailong
V2EX  ›  MongoDB

mongodb 和 mysql 查询的差异

  •  
  •   boyhailong · Dec 19, 2016 · 4273 views
    This topic created in 3473 days ago, the information mentioned may be changed or developed.

    今天下午听外面来的云服务的工程师介绍, mongodb 云服务; 他说 mongo 的 query 是先加载索引,查询的具体数据会驻留内存,然后吃满内存,随着操作系统内存策略而改变存储大小; 但是 mysql 查询时也是先加载索引,再加载具体数据,但更多细节的区别 表示不清楚,大神来解释二者在查询时候的细节区别

    3 replies    2016-12-19 22:13:44 +08:00
    F281M6Dh8DXpD1g2
        1
    F281M6Dh8DXpD1g2  
       Dec 19, 2016
    完全不一样,与其说区别还不如说一样的地方
    billlee
        2
    billlee  
       Dec 19, 2016
    如果是现代的 WiredTiger, 在缓冲池的管理上和 InnoDB 没有大的区别,但 InnoDB 一般都是 O_DIRECT 绕过文件系统的 cache 的,而 WiredTiger 不会绕过文件系统 cache, 这个区别主要是因为 WiredTiger 默认启用了 snappy 压缩,在文件系统 cache 里的是压缩过的数据,而缓冲池里的未压缩的数据。 WiredTiger 有个默认的自动计算缓冲池大小的机制,会留出相当大的一部分内存给文件系统 cache 用。
    tinybaby365
        3
    tinybaby365  
       Dec 19, 2016
    如果是用 mmap 存储引擎(老版本),内存不是自己控制的, mmap 把文件的内容映射到内存,读内存就是读文件,但这个内存的使用量不受使用者控制。极端情况下会使用所有能使用内存。一般不建议把 mongodb 和其他东西部署在同一台机器上。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5376 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 87ms · UTC 08:50 · PVG 16:50 · LAX 01:50 · JFK 04:50
    ♥ Do have faith in what you're doing.