当前位置: 首页 > news >正文

Pandas比MySQL快?

知乎上有人问,处理百万级数据,Python列表、Pandas、Mysql哪个更快?

Pands是Python中非常流行的数据处理库,拥有大量用户,所以拿它和Mysql对比也是情理之中。

实测来看,MySQL > Pandas > Python列表,而且MySQl远快于后两个,几乎是碾压。

这主要是数据库语言和编程语言的差异,其实是不同层面的东西。


Python列表和Pandas是基于内存操作的,百万级数据内存占用高,可能会溢出。

但Pandas算法更优,所以快于Python列表。

Pandas主要基于numpy向量化计算,而且像排序、聚合等算法优化的比较好,一般会比Python列表更快3倍以上。

如果内存占用大,Pandas可以分块读取,所以对于大数据比Python列表有更好的处理能力。

MySQL无疑是最快的,这一点相信写过SQL的人能感受到。

它的数据存储在磁盘,得益于索引和查询优化,而且有分页查询、多线程等,比Pandas和Python列表快很多。

举几个列子,分别是聚合、排序、复杂查询操作。

1、聚合操作(求和)

Python列表(分钟级)需要对嵌套列表进行if遍历,再求和,这非常慢。

Pandas(十秒级)可以用向量化计算来实现,比如df.groupby().sum()

Mysql(秒级)结合索引优化和聚合函数,使用select sum(…) from … group by…

2、排序操作

Python列表(分钟级)使用内置sort()和sorted()方法,时间复杂度高

Pandas(十秒级)使用pandassort_values方法实现,调用C底层算法,比较快

Mysql(秒级)通过索引直接读取B+树,非常快

3、复杂查询(多表+多条件)

Python列表(分钟级)加载全部数据到内存,且算法复杂

Pandas(十秒级)加载全部数据到内存,可以算法优化,但也不快

Mysql(秒级)通过索引和join方法优化,非常快

所以结论如下:

  • Python列表:适合万级以下小规模数据的处理
  • Pandas:适合百万左右中等数据规模的处理
  • Mysql:适合千万以上大规模数据的处理

对了,其实你在Python中可以使用mysql的,有一个专门的sdk接口-pymysql,可以支持python连接mysql,不管是查询、建表、插入数据等都可以实现。

http://www.xdnf.cn/news/336043.html

相关文章:

  • CentOS的防火墙工具(firewalld和iptables)的使用
  • Linux云计算训练营笔记day04(Rocky Linux中的命令)
  • 微信小程序备案的一些记录
  • Logback官方文档翻译章节目录
  • 【漫话机器学习系列】247.当 N=整个母体(WHEN N=POPULATION)
  • 【wpf】11 在WPF中实现父窗口蒙版效果:原理详解与进阶优化
  • 新能源汽车CAN通信深度解析:MCU、VCU、ECU协同工作原理
  • 云计算的基础概论
  • 深入解析建造者模式(Builder Pattern)——以Java实现复杂对象构建的艺术
  • Django之账号登录及权限管理
  • LeetCode算法题(Go语言实现)_61
  • MYSQL之索引结构,为何要用B+树
  • 浅谈 Shell 脚本编程中引号的妙用
  • C++复习类与对象基础
  • 软件逆向工程核心技术:脱壳原理与实战分析
  • 《企业级前端部署方案:Jenkins+MinIO+SSH+Gitee+Jenkinsfile自动化实践》
  • 通过混合机器学习和 TOPSIS 实现智能手机身份验证的稳健行为生物识别框架
  • 【FAQ】HarmonyOS SDK 闭源开放能力 — PDF Kit
  • springboot使用mybatisPlus进行数据库增删改查
  • 华为首款鸿蒙电脑正式亮相
  • 超详细!RxSwift 中的 BehaviorRelay 使用教程(含原理 + 示例 + 实战)
  • 《供应链网络攻击的风险与防范》
  • OpenHarmony 5.0 切换已连接过的wifi切换失败
  • 普通IT的股票交易成长史--20250508晚复盘
  • python学生作业提交管理系统-在线作业提交系统
  • 搭建电商独立站跨境电商反向海淘系统的过程中网站健康运营的指标
  • 前端开发中移动端调试的日常工具整理
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】8.4 数据故事化呈现(报告结构设计/业务价值提炼)
  • 多线程初阶(2)
  • 【数据结构】01Trie