Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么基于sqlite的查询速度会降低?_Php_Sqlite_Yii2 - Fatal编程技术网

Php 为什么基于sqlite的查询速度会降低?

Php 为什么基于sqlite的查询速度会降低?,php,sqlite,yii2,Php,Sqlite,Yii2,有一个使用数据库sqlite的项目 我的本地机器:计算机-I5,RAM-4GB,SSD磁盘。 服务器-英特尔至强E3-1220v2/SSD/RAM 16 Gb 本地和服务器7.0.8上的php版本7.0.10 在本地服务器上,项目是同一件事。但这项工作的速度几乎相差两倍 本地版本sqlite-3.8.11,但在服务器3.11.1上。我不认为这个问题,但仍然 系统中作业的本质——如果没有添加新的值,则搜索现有值。10公里后记录数值​​在表中,新的条目和搜索开始慢慢下沉(在服务器上)。对于20k(记

有一个使用数据库sqlite的项目

我的本地机器:计算机-I5,RAM-4GB,SSD磁盘。 服务器-英特尔至强E3-1220v2/SSD/RAM 16 Gb

本地和服务器7.0.8上的php版本7.0.10

在本地服务器上,项目是同一件事。但这项工作的速度几乎相差两倍

本地版本sqlite-3.8.11,但在服务器3.11.1上。我不认为这个问题,但仍然

系统中作业的本质——如果没有添加新的值,则搜索现有值。10公里后记录数值​​在表中,新的条目和搜索开始慢慢下沉(在服务器上)。对于20k(记录),添加速率与搜索开始本地数据相比相差2-3。 数据通过“批处理”读取部分,也为100(批处理插入)部分写入 参数用于快速写入:

PRAGMA synchronous=0

PRAGMA journal_mode=WAL

PRAGMA count_changes=OFF

我使用一个事务,所有操作都在一个事务中读取和执行搜索


服务器上的项目出现这种下沉速度的原因是什么?

数据库向您返回数据的速度基于多个因素,但在您的情况下,有两个因素似乎最为相关

您已经提到的第一个问题是,服务器运行的系统的容量。很明显,一个性能不是很好的系统不能比一个容量更大的系统表现得更好。这意味着您可以扩展服务器,使服务器运行得更快

然而,您提到数据库中大约有10k条记录,它开始变慢。这表明您的表中没有良好的索引,这意味着您的数据库搜索将执行得较慢。在开始完全填充数据库之前,最好先考虑一下数据库上的索引


实际上,我不确定SqlLite是否支持对列进行索引,但如果支持的话,您应该不会介意。否则,您可能希望停止使用愚蠢的SqlLite数据库,开始使用大男孩数据库,如MySql数据库,它支持更高效的搜索、索引和添加数据的方法。

表中的索引是,它们用于搜索。数据库结构相同。读写速度驱动器也大致相同(比较本地计算机和服务器)。因此,问题不在熨斗中,也不在数据库中。在服务器中,sqlite查询的执行速度较慢,原因何在?因为它是一个较小的轻量级工具,不是为了提高性能,而是为了易于使用。一些开发人员选择在开发过程开始时使用sqlite,然后升级到功能强大的大型数据库。你可以把它比作搬家。你可以开始用你的自行车移动小东西,它很容易停车,而且几乎不需要任何费用。但是,当你真正开始移动大的东西时,你会打电话给一家移动公司,他们有着强大的卡车。显示数据库模式、慢速查询及其输出。在服务器和本地机器上,显示同一个数据库。我将我的应用程序从本地计算机转移到服务器并运行,我看到了这个结果。例如:在服务器上-1000000次插入8.338秒(119934.9 q/s)本地计算机-1000000次插入17.291秒(57834.3 q/s)代码-