原贴:http://www.oschina.net/question/126398_61956?sort=time
性能相比,在较少的访问下,mysql优于postgresql,但较高的访问下,postgresql却远远高于mysql。
mysql用的是多线程:多线程无需跨进程边界, 程序逻辑和控制方式简单, 所有线程可以直接共享内存和变量等, 线程方式消耗的总资源比进程方式好。
所以在低访问的情况下mysql优于postgresql,但差别不大,如果差别太多,能只能说是postgresql线程运行的模块算法效率没mysql的好。
但在较高的访问下,由于在UNIX环境,多进程调度开销比多线程调度开销,没有显著区别(在windows下线程切换比进程切换快很多)。多进程互相之间是独立的,稳定性比多线程高很多,子进程崩溃也没关,但多线程一但有一个线程出现错误,整个程序就game over。多线程使用的是一个进程的资源,而多线程使用的是整个系统的资源,所以多进程能充份提高系统的效率和系统的资源利用率,使之达到多线程无法达到的性能。