gpt4 book ai didi

mysql - 依赖 MySQL 功能与我的脚本

转载 作者:太空宇宙 更新时间:2023-11-03 11:04:04 25 4
gpt4 key购买 nike

对于我需要执行的大多数过程,我一直依赖我的 PHP 编程,我知道这些过程可以通过 MySQL 查询或功能来完成。例如:

我知道 MySQL 有一个 FOREIGN KEY 功能,可以帮助维护数据完整性,但我不依赖 MySQL。我不妨让我的脚本这样做,因为它更灵活;我基本上使用 MySQL 作为 STORAGE,我的 SCRIPTS 作为处理器。

我想保持这种状态,将大部分负担放在我的编码上。我确保我的脚本能够在每次进行更改时检查冲突、孤立行等,我什至有一个系统检查例程来运行所有这些数据验证过程,所以我真的尝试在脚本端做所有事情只要因为它不会显着影响整个性能(因为我知道 MySQL 可以在内部更快地做事,我的意思是我当然使用 MySQL COUNT() 函数)。

当然,对表所做的任何直接更改都不会触发我的脚本中的例程。但那是另外一回事了。我很乐意这样做,并且我计划继续这样做,直到我确信不是这样。

我现在唯一真正遇到的问题是检查重复项。

我目前的例程基本上是插入带有序列号的产品。我需要确保没有重复的序列号输入到数据库中。

我可以简单地依靠 MySQL UNIQUE 约束来确保这一点,或者我可以在脚本端完成它,这就是我所做的。

此产品例程是一个 BATCH 例程,其中 1 到 500 种产品将在一次调用脚本时输入到数据库中。

显然,我检查了提交数据中的重复条目以及数据库中的数据。这是我的一部分例程

 for ($i = 1; $i <= $qty; $i++) {
//
$serial = $serials_array[$i - 1]; // -1 coz arrays start at zero

//check duplicates in submitted data ++++++++++++++++++++++++++
if($serial_check[$serial] == 1) { // duplicate found!
exit("stat=err&statMsg=Duplicate serial found in your entry! ($serial)");
}else{
$serial_check[$serial] = 1;
}


//check duplicates in database
if(db_checkRow("inventory_stocks", "WHERE serial='$serial'"))exit("stat=err&statMsg=Serial Number is already used. ($serial)");
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

}

好的,基本上是:

1) 通过创建一个数组来检查提交的数据是否重复,我可以检查每个提交的序列号 - 这没有问题,而且使用 PHP 速度非常快,甚至多达 1000 条记录。

2) 但是,要检查数据库中的重复项,我必须调用我创建的函数 (db_checkRow) w/c 基本上在提交的每个序列上发出一个 SELECT 语句,看看是否有命中/重复项。

所以,基本上,500 个 SELECT 语句来检查重复项与仅 MySQL 唯一约束功能相比。

真的很重要吗??

我这样设计我的软件的另一个原因是,至少如果我需要在不同的数据库上部署我的东西,我不会过多地依赖数据库功能,因此我可以轻松地移植我的应用程序,只需很少的调整。

最佳答案

几乎可以保证 MySQL 在检查重复项时会更快。除非你在一些 super 机器上运行你的 PHP 而 MySQL 在旧 watch 上运行,否则索引检查将比你通过 PHP 可以做的任何事情更快和更好地优化。

更不用说在其他人(或其他应用程序)开始写入数据库之前,您的流程是正常的。您可以避免自己必须首先编写重复检查代码 - 然后在下一个应用程序中再次编写 - 等等。

关于mysql - 依赖 MySQL 功能与我的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13330611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com