为什么 MySQL 使用多线程,而 Oracle 和 PostgreSQL 使用多进程

为什么 MySQL 使用多线程,而 Oracle 和 PostgreSQL 使用多进程,第1张

首先要明白县城和进程的区别和关系

一个进程至少拥有一个线程,一个线程只属于一个进程。

进程是拥有资源和调度的基本单位,线程是调度的基本单位。

进程独立拥有内存,线程共享所属进程的内存。

ORACLE在windows上也是多线程

传统的unix系统,早期没有提供多线程,只有多进程。linux是最近的版本才加入多线程支持,以前一直都是多进程。windows很早就支持多线程,本地应用大部分也是多线程。因此oracle在windows上一直都是多线程,在unix上才是多进程。多进程的好处是,一个进程崩溃不会影响其他进程,多线程的好处是不需要共享内存这样的手段来访问数据库缓冲区。mysql很可能是从windows发站起来的,pg和oracle都是最早从unix发站起来的,因此前者是多线程,后两者是多进程。

最根本的原因就如方圆说的,主要是当年 *** 作系统对线程支持不给力,而MySQL是特例,因为开发者喜欢挑战(不过事实上,那个时候的线程支持已经基本完善了。MySQL后于Oracle和POSTGRES)

希望能帮到您!

你可以设置一个全局变量参数,如LV_COUNT:=0,假设有三个过程P1\P2\P3希望按顺序执行,每个过程在执行开始首先判断LV_COUNT的值,如果是0,P1执行,执行后把LV_COUNT置为1;如果是1,P2执行,执行后把LV_COUNT置为2;如果是2,P3执行,执行后把LV_COUNT再次置为0,可以开始下一次循环。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10018508.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存