原创 最全的 MySQL 8.0 新特性解讀

一、功能增強1.1-所有系統表更換爲InnoDB引擎系統表全部換成事務型的innodb表,默認的MySQL實例將不包含任何MyISAM表,除非手動創建MyISAM表。 1.2-DDL原子化InnoDB表的DDL支持事務完整性,要麼成功要麼回

原创 RabbitMQ:消息丟失 | 消息重複 | 消息積壓的原因+解決方案

前言 首先說一點,企業中最常用的實際上既不是RocketMQ,也不是Kafka,而是RabbitMQ。RocketMQ很強大,但主要是阿里推廣自己的雲產品而開源出來的一款消息隊列,其實中小企業用RocketMQ的沒有想象中那麼多。深層次的原

原创 百萬級數據導入(hyperf+xlswriter+task+websocket)

需要實現的功能:1、導入 excel 文件,10w 條數據或者更多2、進行入庫操作可能涉及多張表需要進行多表數據校驗(updateOrCreate)需要保證多張表數據一致 (transaction)3、前端實時顯示入庫進度 實現思路:將數據

原创 Docker 爲什麼不適合跑 MySQL

容器的定義:容器是爲了解決“在切換運行環境時,如何保證軟件能夠正常運行”這一問題。目前,容器和 Docker 依舊是技術領域最熱門的詞語,無狀態的服務容器化已經是大勢所趨,同時也帶來了一個熱點問題被大家所爭論不以:數據庫 MySQL 是否需

原创 select......for update會鎖表還是鎖行

select查詢語句是不會加鎖的,但是select .......for update除了有查詢的作用外,還會加鎖呢,而且它是悲觀鎖。那麼它加的是行鎖還是表鎖,這就要看是不是用了索引/主鍵。沒用索引/主鍵的話就是表鎖,否則就是是行鎖。 驗證

原创 MySQL插入1000萬條數據,用PHP如何做才能保證性能的最優

插入大量數據時,確保性能最優是很重要的。下面是幾種在 PHP 中快速向 MySQL 插入大量數據的優化方案:使用多行插入:最簡單的方法是使用多行插入語句,將多條記錄一次性插入到數據庫。這比逐條插入要快得多,因爲減少了連接和查詢的開銷。 $v

原创 Mysql空間清理的幾種具體方法

前言 在Mysql環境下,常常由於數據磁盤滿而導致Mysql故障。下面整理了如何在Mysql環境下做好Mysql的空間清理。 1.查看文件磁盤佔用 1.1 查看磁盤空間佔用 1 [root@mysqlhost01 /

原创 nginx轉發swoole以及nginx負載

nginx作爲靜態服務器同時轉發swoole配置: location /{root //靜態文件目錄;index index.html index.htm;//默認首頁  if(!-e $request_filename){ //

原创 使用php curl用私鑰連接到sftp

使用php curl用私鑰連接到sftp php I need to write a php script that can connect to a sftp server, get the list of

原创 Mysql如何通過binlog日誌恢復數據詳解

MySQL的binlog日誌是MySQL日誌中非常重要的一種日誌,記錄了數據庫所有的DML操作。通過binlog日誌我們可以進行數據庫的讀寫分離、數據增量備份以及服務器宕機時的數據恢復。 定期備份固然可以在服務器發生宕機的時候快速的恢復數據

原创 redis變慢查詢

Redis 通常是我們業務系統中一個重要的組件,比如:緩存、賬號登錄信息、排行榜等。 一旦 Redis 請求延遲增加,可能就會導致業務系統“雪崩”。 我在單身紅娘婚戀類型互聯網公司工作,在雙十一推出下單就送女朋友的活動。 誰曾想,凌晨 12

原创 MySQL會發生死鎖

SHOW ENGINE INNODB STATUS;來查看死鎖日誌: SHOW PROCESSLIST;查看進程 MySQL的InnoDB引擎事務有4種隔離級別,主要是爲了保證數據的一致性。 InnoDB引擎提供了行級鎖,表鎖。MyISA

原创 紅黑樹、散列表、跳錶理解入門

跳錶 跳錶是什麼? 就是把鏈表的結構稍加改造,這種數據結構叫 爲什麼要改造鏈表呢? 爲了提升鏈表的查詢效率,怎麼讓鏈表支持類似‘數組’那樣的‘二分’算法呢 簡單理解跳錶 跳錶是一個各方面性能都比較優秀的 動態數據結構,可以支持快速地插入

原创 RabbitMQ 發佈訂閱-實現延時重試隊列

RabbitMQ消息處理失敗,我們會讓失敗消息進入重試隊列等待執行,因爲在重試隊列距離真正執行還需要定義的時間間隔,因此,我們可以將重試隊列設置成延時處理。今天參考網上其他人的實現,簡單梳理下消息延時重試執行的思路。 消費失敗後,自動延時將

原创 高併發相關概念

1)併發 併發,在操作系統中,是指一個時間段中有幾個程序都處於已啓動運行到運行完畢之間,且這幾個程序都是在同一個處理機上運行,但任一個時刻點上只有一個程序在處理機上運行。 2)我們說的高併發是什麼? 上面的定義明顯不是我們通常所言的併發,在