php - 在 sql 比较查询之前将长字符串转换为短哈希 - 提高性能?

标签 php mysql performance hash

一个网站公开了一个 URL 地址列表,第二个网站定期检查这个列表,其目的是判断那里是否出现了任何新地址。该列表是“移动的”,这意味着新地址逐渐出现而旧地址消失。

第二个网站将地址存储在数据库中以供比较。问题是 - 如何才能更快地做到这一点,速度是关键。

  1. 从第一个网站获取列表,从数据库中删除不在我们列表中的旧地址,插入列表中但不在数据库中的数据库地址。

  1. 同上,但使用从这些地址获取的 CRC32 字符串执行此操作。

我是这样想的——那些 URL 地址可以是任意长的,在数据​​库搜索之前将它们转换为 CRC32 似乎保证了数据库负载的线性增加,当从数据库中搜索/删除它们时。

另一方面,在 PHP 级别将它们转换为 CRC32 字符串会给 http 服务器带来更多负载,问题是 - 预先转换它们是否比在 sql 查询的 WHERE 子句中使用整体更快?

顺便说一句。是的,CRC32 对我的用例具有足够的独特性。

最佳答案

在您的描述中,您似乎总是用新列表替换数据库,因此最好使用原始字符串。 无论如何,如果表被索引,性能改进将小于几乎每个现代数据库中将字符串转换为 int 的开销。

关于php - 在 sql 比较查询之前将长字符串转换为短哈希 - 提高性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31205286/

相关文章:

php - 如何为用户数据创建 API(MySQL 和 PHP)

php - login.php 重定向到空白页面

asp.net - 如何加快 Google adsense 和分析加载时间?

php - mysql查询语法错误

mysql - 使用 nginx 和 redis 跟踪最后的图像请求

sql-server - SQL Server 2008 R2 是 Oracle 11g RAC 的替代品吗?

iphone - 在运行时测量和跟踪各种调用的性能的最佳方法是什么?

php - 无法让 Codeception 在多站点上使用 wp_query

php - 扩展在 PHP 中实现接口(interface)的类时找不到类

mysql - 选择 * 与选择特定列