单表数据量:202908463(2亿多条记录),物理容量:单文件50个,上图:
环境:php7.3 MySQL5.7 think-Orm 核心库
测试环节:写入数据库以亿为单位的数据
1:think-Orm的Db库长时间写入数据,每次写入1000条数据,发生内存泄漏,希望官方有看到这个文章进行改进。上图
2:改用自己封装单文件pdo类库文件,循环插入数据,每次插入5万条,本想每次插入10条,结果10万条报错,将就5万每次插入。上图
单文件pdo库分享
3:PHP程序查询总计多少条记录耗时:
think-Orm框架查询耗时:
数据库直连SQL查询耗时:
通过真实环境测试,数据IO是最吃内存和CPU,所以项目的瓶颈常常在于数据库性能。
代码的优劣能起到一定作用,但解决不了本质。
当数据量大到一定程度,比拼的的就是物理硬件和软件的综合调优水平,这个才是我们要努力的方向。
参考技术点:
硬件升级层面:升级cup,升级内存,带宽。
软件开发层面:分库,分表,缓存,中间件等。每一块的东西都够我们学习研究很长时间,发现问题,解决问题才是编码的正确姿势,不要一味听一些空大虚的讲座,意义不大。
项目实操才是重点,有更多项目实操,有更多的业务场景解决方案,才是程序员向企业主要更高薪资的底气。
此篇技术测试类文章,做这个测试文章的初衷是因为一句话。
一个认识的老程序员,在菊花厂干了10多年,后来出来创业又搞了几年,编码年龄小20年,主要技术栈是JAVA和Python,平时聊一些技术方面的东西,估计是有做过
一些外包项目,合作伙伴是php写的,应该是做黄了,尾款没有收回来,这种情况很常见,谁能保证每个外包项目都做成能呢。
所以对php产生了一些偏见,认为php程序员水平不行,php语言性能不行,带有一些主观色彩,
这篇文章就是为php来证明,来证明php是世界上最好的语言之一,是解决问题的最佳工具。
工具的利害性,取决于开发人员的相对性,人有最复杂奇妙的想象力,所以为什么不用最便捷,最省成本的方案来做事情呢。