V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
paddistone
V2EX  ›  数据库

Python 单次查表耗时多少才正常?

  •  
  •   paddistone · 2020-12-08 09:42:53 +08:00 · 1554 次点击
    这是一个创建于 1206 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在较少数据量(不到 100 条)的情况下,做单次 sqlite 查询大概要多久? 1~2ms 感觉还是很长(使用 ORM 框架)

    10 条回复    2020-12-09 11:09:50 +08:00
    saulshao
        1
    saulshao  
       2020-12-08 10:02:34 +08:00
    1~2m 是啥时间?这种数数量级你讨论耗时一点意义都没有,主要的耗时估计都在硬盘存取上。并且 1ms 和 0.5ms 你基本上都没法统计了。你换成 C 也不会比 Python 快多少。
    msg7086
        2
    msg7086  
       2020-12-08 10:20:23 +08:00
    感觉长可以换 SSD ?
    maocat
        3
    maocat  
       2020-12-08 10:23:38 +08:00
    测一下原生的 sql 试试?
    ORM 的话它有一个数据序列化成对象,这个也要时间的,你试试一万条数据,结果你会发现查询的很快,时间都耗费在序列化上了
    Vegetable
        4
    Vegetable  
       2020-12-08 10:26:38 +08:00
    sqlite3 模块本身就是 c 写的,可能是你硬盘有问题,比如 ECS 的自带硬盘什么的性能比较差。可以和 file:memory 对比一下
    RangerWolf
        5
    RangerWolf  
       2020-12-08 10:32:41 +08:00
    sqlite 不支持多线程查询 。。。 本身就是一个文件而已 。。。
    CallMeReznov
        6
    CallMeReznov  
       2020-12-08 10:51:10 +08:00
    数据库,先从硬盘 IO 上找毛病基本不会错.
    wellsc
        7
    wellsc  
       2020-12-08 18:41:45 +08:00
    单表耗时难道不应该看数据库嘛?和语言关系不大吧
    paddistone
        8
    paddistone  
    OP
       2020-12-09 09:39:44 +08:00
    @saulshao 怎样统计是比较有价值的?
    @RangerWolf @maocat @msg7086
    应用框架已经设计成如此了,因为要支持多种数据库,目前比较方便的方式就是 ORM (反射慢一点比较有名的),然而即使不用 ORM 的话,我也一下想不到其他的方案实现多数据库支持。
    原生 sql 语句查询起来必然会快的,只是对工程没多大意义。
    @Vegetable 对于 sqlite:memory 这个好像官方不兼容文件方式,只有数据量过大才会写盘?
    @CallMeReznov 硬盘 IO 问题切入点?这个对应用层是否有可控方案?
    @wellsc 加索引这种优化都感受不到多大变化,而且原生 sql 速度可以接受(表字段比较多)
    msg7086
        9
    msg7086  
       2020-12-09 10:11:41 +08:00
    @paddistone 可我说的是换 SSD 啊?
    paddistone
        10
    paddistone  
    OP
       2020-12-09 11:09:50 +08:00
    @msg7086 回错了。。。SSD 的话客户节点机暂不支持,所以就忽略了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2873 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 00:28 · PVG 08:28 · LAX 17:28 · JFK 20:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.