簡體   English   中英

php 速度對比 mysql 速度

[英]php speed vs. mysql speed

我正在使用 php 和 mysql 制作一個提要聚合器。 並寫一篇關於它的論文,其中必須包含數學。

我有一個表feeds (id、標題、描述、鏈接),其中id是主鍵。 當我收集新的提要時,我需要將它們添加到數據庫中,但我不能讓任何重復項進入。我看到了兩種方法:

1)對於每個提要運行如下:

SELECT id FROM feeds 
WHERE title=$feed.title AND description=$feed.description;

並查看它是否返回任何提要。

2)假設來自不同來源的提要從不匹配。 在這種情況下:對於每個提要源,運行如下所示:

SELECT title, description, source FROM feeds WHERE source=$source;

然后使用 PHP 將收集到的提要與此數組進行匹配。

我承認,我沒有任何性能問題。 但是我正在寫一篇關於它的論文,我必須找到一些方法來將數學應用於這個問題。 我選擇了第二種方法,因為它允許我從 go 了解為什么它可以更快的數學細節。 但我懷疑 php 的工作速度可能會比 mysql 慢得多,而且為每個提要運行查詢實際上可能更快。

我對嗎? 選擇第二種方法有什么實際理由嗎? 我如何證明我的選擇是合理的?

對於數學,請考慮擴展對您的數據庫的影響。 為第一個提要添加新提要需要多長時間? 第10000個怎么樣? 第1000萬個呢? 現有提要數量的增加會以何種方式影響添加新提要的速度?

PHP 和 MySQL:兩者都在服務器端運行,不像客戶端/瀏覽器中的 javascript。

如果您沒有超過數百萬的數據,那么無論如何它不會很慢。

為什么不只添加一個在標題和描述上唯一的索引? 不知道在性能方面是否最好,但它會以最正確的方式為您處理邏輯..

我認為最快的方法是在源列上放置一個 UNIQUE 索引,然后簡單地執行 INSERT IGNORE,在一個查詢中發送所有收集的提要,甚至無需手動檢查重復項。 這不僅可以節省您為每個提要執行一個查詢的處理/網絡開銷,索引還將確保您沒有任何重復項(假設每個提要的源實際上是唯一的)。

您是否考慮過使用復合唯一索引?

alter table feeds add unique index(title, description);

當表中已經存在標題和描述時,這將阻止添加新行。

但是,您必須在大型數據庫中進行大量插入才能真正獲得性能值。

編輯:這在 MYSQL Null 中確實有一個缺點,因此您可以輸入幾行 title=null 和 description=null。 您應該在嘗試插入數據之前檢查這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM