首頁 後端開發 php教程 PHP如何結合MySQL進行千萬級資料處理

PHP如何結合MySQL進行千萬級資料處理

Jul 07, 2020 pm 04:26 PM
mysql php 資料處理

PHP如何結合MySQL進行千萬級資料處理

mysql分錶思路


#     一張一億的訂單表,可以分成五張表,這樣每張表就只有兩千萬數據,分擔了原來一張表的壓力,分錶需要根據某個條件進行分,這裡可以根據地區來分錶,需要一個中間件來控製到底是去哪張表去找到自己想要的資料。
   中間件:依照主表的自增id作為中介軟體(什麼樣的欄位適合做中間件?要具備唯一性)
   怎麼分發?主表插入之後回傳一個id,根據這個id和表的數量進行取模,餘數是幾就往哪張表中插入資料。
   注意:子表中的id要與主表的id保持一致
   以後只有插入操作會用到主表,修改,刪除,讀取,均不需要用到主表

相關學習推薦:PHP程式設計從入門到精通

PHP 结合 MySQL 千万级数据处理

redis訊息佇列

1,什麼是訊息隊列?
在訊息傳播過程中保存訊息的容器
2,訊息佇列產生的歷史原因

PHP 结合 MySQL 千万级数据处理

訊息佇列的特性:先進先出
把要執行的sql語句先保存在訊息佇列中,然後依序依照順利非同步插入的資料庫中
應用:新浪,把瞬間的註解先放入訊息佇列,然後透過定時任務把訊息佇列裡面的sql語句依序插入到資料庫中

修改

運算子表進行修改

PHP 结合 MySQL 千万级数据处理

這樣修改有一個問題,主表和子表的資料會出現不一致,如何讓主表和字表資料一致?

redis佇列保持主表子表資料一致

修改完成後將要修改主表的數據,存入redis佇列中

PHP 结合 MySQL 千万级数据处理

然後linux定時任務(contble)循環執行redis佇列中的sql語句,同步更新主表的內容

PHP 结合 MySQL 千万级数据处理

mysql分散式之分錶(查,刪)

查詢只需要查詢子表,不要查詢總表

PHP 结合 MySQL 千万级数据处理

刪除,先根據id找到要刪除的子表,然後刪除,然後往訊息佇列中壓入一條刪除總表資料的sql語句
然後執行定時任務刪除總表資料

PHP 结合 MySQL 千万级数据处理

定時任務:

PHP 结合 MySQL 千万级数据处理

mysql分散式之分庫

分庫思路

PHP 结合 MySQL 千万级数据处理

分庫原理圖:

PHP 结合 MySQL 千万级数据处理

PHP 结合 MySQL 千万级数据处理

#

mysql分散式之分庫(增)

PHP 结合 MySQL 千万级数据处理
注意:操作完一個資料庫一定要把資料庫連線關閉,不然mysql會以為一直連線的同一個資料庫

還是取模決定載入哪個設定檔連接哪個資料庫

PHP 结合 MySQL 千万级数据处理

#mysql分散式之分庫(改)

原理同新增

PHP 结合 MySQL 千万级数据处理

mysql分散式之分庫(查,刪除)

##mysql分散式之分庫(查,刪除)PHP 结合 MySQL 千万级数据处理
原理類似

PHP 结合 MySQL 千万级数据处理
刪除

執行佇列

mysql分散式快取(memcache)的應用程式PHP 结合 MySQL 千万级数据处理

將資料放入快取中,節省資料庫開銷,先去快取中查,如果有直接取出,如果沒有,就去資料庫查,然後存入快取中

PHP 结合 MySQL 千万级数据处理

在編輯資訊之後需要刪除緩存,不然一直讀取的是快取的資料而不是修改過的資料############

以上是PHP如何結合MySQL進行千萬級資料處理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1325
25
PHP教程
1272
29
C# 教程
1252
24
在MySQL中解釋外鍵的目的。 在MySQL中解釋外鍵的目的。 Apr 25, 2025 am 12:17 AM

在MySQL中,外鍵的作用是建立表與表之間的關係,確保數據的一致性和完整性。外鍵通過引用完整性檢查和級聯操作維護數據的有效性,使用時需注意性能優化和避免常見錯誤。

比較和對比Mysql和Mariadb。 比較和對比Mysql和Mariadb。 Apr 26, 2025 am 12:08 AM

MySQL和MariaDB的主要區別在於性能、功能和許可證:1.MySQL由Oracle開發,MariaDB是其分支。 2.MariaDB在高負載環境中性能可能更好。 3.MariaDB提供了更多的存儲引擎和功能。 4.MySQL採用雙重許可證,MariaDB完全開源。選擇時應考慮現有基礎設施、性能需求、功能需求和許可證成本。

如果session_start()被多次調用會發生什麼? 如果session_start()被多次調用會發生什麼? Apr 25, 2025 am 12:06 AM

多次調用session_start()會導致警告信息和可能的數據覆蓋。 1)PHP會發出警告,提示session已啟動。 2)可能導致session數據意外覆蓋。 3)使用session_status()檢查session狀態,避免重複調用。

MySQL:數據庫,PHPMYADMIN:管理接口 MySQL:數據庫,PHPMYADMIN:管理接口 Apr 29, 2025 am 12:44 AM

MySQL和phpMyAdmin可以通過以下步驟進行有效管理:1.創建和刪除數據庫:在phpMyAdmin中點擊幾下即可完成。 2.管理表:可以創建表、修改結構、添加索引。 3.數據操作:支持插入、更新、刪除數據和執行SQL查詢。 4.導入導出數據:支持SQL、CSV、XML等格式。 5.優化和監控:使用OPTIMIZETABLE命令優化表,並利用查詢分析器和監控工具解決性能問題。

作曲家:通過AI的幫助開發PHP 作曲家:通過AI的幫助開發PHP Apr 29, 2025 am 12:27 AM

AI可以幫助優化Composer的使用,具體方法包括:1.依賴管理優化:AI分析依賴關係,建議最佳版本組合,減少衝突。 2.自動化代碼生成:AI生成符合最佳實踐的composer.json文件。 3.代碼質量提升:AI檢測潛在問題,提供優化建議,提高代碼質量。這些方法通過機器學習和自然語言處理技術實現,幫助開發者提高效率和代碼質量。

給MySQL表添加和刪除字段的操作步驟 給MySQL表添加和刪除字段的操作步驟 Apr 29, 2025 pm 04:15 PM

在MySQL中,添加字段使用ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column,刪除字段使用ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop。添加字段時,需指定位置以優化查詢性能和數據結構;刪除字段前需確認操作不可逆;使用在線DDL、備份數據、測試環境和低負載時間段修改表結構是性能優化和最佳實踐。

怎樣卸載MySQL並清理殘留文件 怎樣卸載MySQL並清理殘留文件 Apr 29, 2025 pm 04:03 PM

要安全、徹底地卸載MySQL並清理所有殘留文件,需遵循以下步驟:1.停止MySQL服務;2.卸載MySQL軟件包;3.清理配置文件和數據目錄;4.驗證卸載是否徹底。

session_start()函數的意義是什麼? session_start()函數的意義是什麼? May 03, 2025 am 12:18 AM

session_start()iscucialinphpformanagingusersessions.1)ItInitiateSanewsessionifnoneexists,2)resumesanexistingsessions,and3)setsasesessionCookieforContinuityActinuityAccontinuityAcconActInityAcconActInityAcconAccRequests,EnablingApplicationsApplicationsLikeUseAppericationLikeUseAthenticationalticationaltication and PersersonalizedContentent。

See all articles