原创 索引失效(在實戰過程中應該是要避免的)

索引失效的常見案例 全值匹配 最佳左前綴法則:如果索引了多列,要遵循最左前綴法則。值的是查詢從索引的最左前列開始並且不跳過索引中的列 帶頭大哥不能死 中間兄弟不能斷 不在索引列上做任何操作(計算、函數、轉換類型等等

原创 優化索引的常用思路

索引優化(經常使用 的思路) 對於兩張表而言,左連給右表加索引;右連給左表加索引 索引最好設置在需要經常查詢的字段中 對於三張表及以上的情況 JOIN語句的優化 儘可能的減少join語句中的NestedLoop的循環總次

原创 Mysql之explain

explain 是什麼:使用explain關鍵字可以模擬優化器執行sql語句,從而知道MYsqlShi 如何處理我們的SQL語句的。分析我們的查詢語句或者表結構的性能瓶頸 能幹嘛 表的讀取順序 數據讀取操作的操作類型 哪

原创 Mysql性能分析必備知識

Mysql Query Optimizer(Mysql查詢優化分析器) Mysql中有專門的負責優化select語句的優化器模塊,主要功能:通過計算分析系統中收集到的統計信息,爲客戶端請求的Query提供它認爲最優的執行計劃 當

原创 索引出識

索引 是什麼:索引是幫助mysql高效獲得數據的數據結構。一種排好序的快速查找數據結構 索引具體描述:數據本身之外,數據庫還維護着一個滿足特定查找算法的數據結構,這些數據結構以某種方式指向數據,這樣就可以在這些數據結構的基礎上實

原创 MySQL架構說明

架構圖:     連接層 最上層是一些客戶端和連接服務,包含本地sock通訊和大多數基於客戶端/服務端工具實現類似於tcp/ip的通訊。主要完成一些類似於連接處理、授權認證以及相關的安全方案。在該層上引入線程池的概念,爲通過認證安全接

原创 使用Vue編寫的前端調用服務器接口狀態響應碼200,但是最終報錯解決思路

現象:在通過Vue編寫的前端調用服務器接口,返回的狀態響應碼是200.但是最終報錯“請求產生非業務異常”。 簡單書就是接口是調用了,但是最終返回信息沒有 解決:這種問題大概路就是服務器接口邏輯中某一個方法中sql出現了問題,最快的解決辦法就

原创 pgsql創建數據庫

創建數據庫的常用方式 使用create database語句來進行創建 例子:create database 數據庫名稱 使用createdb命令來創建 命令:createdb [options...][dbname[des

原创 在pgsql中,主鍵爲varchar時,處理辦法

場景: 在項目中使用mybatis框架和pgsql數據庫,對通過查詢其他表中數據對當前表進行插入操作,當前表的主鍵是varchar類型的無法自動增長,解決辦法 java代碼層面,通過UUID類進行處理,具體操作 String uuid= U

原创 設計模式之原型設計

設計模式之原型模式 問題:現在有一隻羊tom,姓名爲:tom,年齡爲:1,顏色爲:白色,請編寫程序創建和tom羊屬性完全相同的10只羊 代碼 //傳統的解決思路:可以使用類圖展示一下class Sheep{    private S

原创 消息傳遞:發佈訂閱模式詳解

Redis發佈訂閱簡介 (1) 定義:Redis發佈訂閱(pub/sub)是一種消息通訊模式:發送者發送消息,訂閱者接受信息 (2) 具體操作:Redis的SUBSCRIBE命令可以讓客戶端訂閱任意數量的頻道,每當有新信息發送到被訂閱的

原创 哨兵機制(Redis Sentinel)

哨兵機制 (1) 哨兵機制的核心功能 ① 核心功能是主節點的自動故障轉移 (2) 下圖是一張典型的哨兵集羣監控的邏輯圖       (3) 哨兵實現了什麼功能? ① 監控:哨兵會不斷的檢查主節點和從節點是否運行正常 ② 自動故障轉移:當

原创 Redis分片技術(Redis Cluster)

  redis Cluster介紹 (1) Redis-Cluster是一種服務器Sharding技術,Redis3.0以後版本正式提供支持 (2) 特點: ① Redis_cluster沒有使用一致性hash,而是引入了hash槽的概

原创 redis進階-高可用:主從複製詳解

主從複製 (1) 主從複製概述:主從複製是指將一臺redis服務器中的數據,複製到其它的redis服務器。前者稱爲主節點(master),後者稱爲從節點;數據的複製是單向的,只能是主節點到從節點 (2) 主從複製的作用 ① 數據冗餘:主

原创 緩存問題:一致性、穿擊、穿透、雪崩、污染

爲什麼要理解Redi緩存問題 (1) 在高併發的業務場景下,數據庫大多數情況都是用戶併發訪問最薄弱的環節。所以,就需要使用redis做一個緩衝操作,讓請求先訪問到redis,而不是直接訪問mysql等數據庫。這樣可以大大緩解數據庫的壓力