首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
V2EX  ›  问与答

内存数据库,MySQL和sqlite,哪个更好?

  •  
  •   flypen · 2012-01-28 13:55:58 +08:00 · 10950 次点击
    这是一个创建于 2580 天前的主题,其中的信息可能已经有所发展或是发生改变。
    数据只保留在内存里面做一些处理,处理完毕之后就丢掉。但是有源源不断地数据进来。有比较多的整数数值比较的操作,但是没有复杂查询,也没有其他复杂的数据库操作。请问,从性能和内存占用率来考虑,MySQL的memory engine和sqlite相比,哪个更好一些?有没有更好的推荐?
    25 回复  |  直到 1970-01-01 08:00:00 +08:00
        1
    kingwkb   2012-01-28 13:59:44 +08:00 via Android
    当然sqlite
        2
    felixonmars   2012-01-28 14:08:02 +08:00
    不考虑memcached之类的nosql内存数据库吗?
        3
    panlilu   2012-01-28 14:09:10 +08:00 via Android
    mysql 没有压岁钱。。
        4
    felixonmars   2012-01-28 14:11:31 +08:00
    @panlilu 明明是 没压岁钱了 ...
        5
    gujiaxi   2012-01-28 14:26:31 +08:00
    想到个段子:MYSQL=妈要生气了
        6
    cngump   2012-01-28 14:30:45 +08:00 via iPhone
    redis?
        7
    flypen   2012-01-28 14:38:45 +08:00
    因为要设计到一些比较操作(select * from * where a>b),所以用SQL的数据库操作起来方便点(当然不一定是效率更好)。如果用memcached或者redis这种key-value形势的东东,弄起来怕有点不方便。

    顺便问问,SQL语句中的比较查询操作,在不能使用索引的时候都是会把数据库从头到尾扫描一遍的吧?这样的话,性能是不是就不是太好了?
        8
    felixonmars   2012-01-28 14:43:21 +08:00
    还可以考虑mongodb之类的文档型数据库, 对于简单的where a>b类似操作是绝对足够了...
        9
    panlilu   2012-01-28 15:22:38 +08:00
    @felixonmars 哈哈。。一时打错了。。
        10
    master   2012-01-28 15:58:00 +08:00
    各个的应用场景不同,没有哪个是绝对的好吧
        11
    freefcw   2012-01-28 16:45:53 +08:00
    最好用的其实是自己写一个= =
        12
    Ricepig   2012-01-28 16:49:31 +08:00
    sqlite的join性能貌似很低
        13
    flypen   2012-01-28 18:14:23 +08:00
    @Ricepig 对于sqlite的join性能很低,有实践过或者有出处吗?
        14
    Ricepig   2012-01-28 18:43:12 +08:00
    @flypen 我有一个OLAP的应用开始就使用sqlite,数据量不太大的时候join性能就很一般,后来不得不自己做Hash Join
        15
    feiandxs   2012-01-28 18:52:56 +08:00
    没用过sqlite,但记得看到的资料普遍对sqlite的插入操作表示不理想。
    https://www.google.com/search?q=sqlite%E6%8F%92%E5%85%A5%E6%80%A7%E8%83%BD&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a
    sql在不用索引的时候进行检索是会全扫的。如果不想用key-value形式的库,用mysql的内存表性能也不差,具体看你应用了。
        16
    mlzboy   2012-01-28 20:09:17 +08:00
    @gujiaxi 表达的是什么意思
        17
    gujiaxi   2012-01-28 21:41:15 +08:00
    @mlzboy “再不找女朋友,MYSQL”
        18
    Kobe   2012-01-28 23:03:26 +08:00 via iPad
    这两个默认都不是内存数据库,考虑redis或者mongodb吧
        19
    arden   2012-01-29 01:01:18 +08:00
        20
    yyfearth   2012-01-29 04:01:27 +08:00
    @flypen 这个不是map reduce么?
        21
    Livid   V2EX Moderator   2012-01-29 06:10:13 +08:00
    数据源源不断进来,处理完之后又丢掉,那么猜想应该不会需要同时处理太多数据。

    那这种时候就用 MySQL 好了。SQLite 是一个文件,如果有两个不同的程序同时使用一个 SQLite 数据库,那么你还需要第 3 个程序来协调写入。
        22
    flypen   2012-01-29 09:43:58 +08:00
    @yyfearth 比map reduce简单很多,呵呵。
        23
    shawiz   2012-01-29 09:52:06 +08:00
    楼主可以考虑用 Redis, 速度很快的 Key-Value 存储
    根本不需要写 SQL
        24
    iyten   2012-01-29 10:34:11 +08:00
    sqlite不支持单多线程数据处理~
        25
    avatasia   2012-01-29 10:48:59 +08:00
    redis couchdb都是大应用,小应用可以考虑leveldb
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3429 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 18ms · UTC 01:15 · PVG 09:15 · LAX 17:15 · JFK 20:15
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1