一條sql執行過長的時間,你如何優化,從哪些方面?
1、查看sql是否涉及多表的聯表或者子查詢,如果有,看是否能進行業務拆分,相關字段冗余或者合並成臨時表(業務和算法的優化)
2、涉及鏈表的查詢,是否能進行分表查詢,單表查詢之後的結果進行字段整合
3、如果以上兩種都不能操作,非要鏈表查詢,那麽考慮對相對應的查詢條件做索引。加快查詢速度
4、針對數量大的表進行歷史表分離(如交易流水表)
5、數據庫主從分離,讀寫分離,降低讀寫針對同一表同時的壓力,至於主從同步,mysql有自帶的binlog實現 主從同步
6、explain分析sql語句,查看執行計劃,分析索引是否用上,分析掃描行數等等
7、查看mysql執行日誌,看看是否有其他方面的問題
一條sql執行過長的時間,你如何優化,從哪些方面?
相關推薦
一條sql執行過長的時間,你如何優化,從哪些方面?
xpl 主從 plain 查詢 哪些 數量 速度 讀寫分離 進行 1、查看sql是否涉及多表的聯表或者子查詢,如果有,看是否能進行業務拆分,相關字段冗余或者合並成臨時表(業務和算法的優化) 2、涉及鏈表的查詢,是否能進行分表查詢,單表查詢之後的結果進行字段整合 3、如果以上
[轉]51、430、stm32周期和執行一條語句需要多長時間的問題
執行 動作 設置 時間 狀態 一個 語句 沒有 基本 機器周期:在計算機中,常把一條指令的執行過程劃分為若幹個階段,每一個階段完成一項工作。每一項工作稱為一個基本操作,完成一個基本操作所需要的時間稱為機器周期。8051系列單片機的一個機器周期由6個S周期(狀態周期)組成。一
HTML5時代,平面設計師該從哪些方面進行自我提升?(附案例)
編者按:Html 5這麼吃香,平面設計師該做點什麼?今天Epub360筆者從設計內容、表現技巧和觀念三個方面,聊聊平面設計師該如何在這次浪潮中成功站穩腳跟,文中附上大量實戰案例,不談空話乾貨滿滿。想成為Html 5風口上的一隻豬?來學習下這篇! 寫在前面的話,因為網
MySQL 筆記整理(2) --日誌系統,一條SQL查詢語句如何執行
發生 重要 表示 優勢 兩層 一秒 正在 引擎 http 筆記記錄自林曉斌(丁奇)老師的《MySQL實戰45講》 2) --日誌系統,一條SQL查詢語句如何執行 MySQL可以恢復到半個月內任意一秒的狀態,它的實現和日誌系統有關。上一篇中記錄了一條查詢語句是如何執行
一條SQL查詢一個屬性,多個屬性值的情況
cat sele 屬性 clas family 獲取 sql 查詢 group 原先sql獲取角色對應的權限信息: select a.*, group_concat(b.auth_name) as auth_name from sh_role a left join sh_
詳解一條sql語句的執行過程
inno double other into 數據過濾 計算 var idt 底層實現 SQL是一套標準,全稱結構化查詢語言,是用來完成和數據庫之間的通信的編程語言,SQL語言是腳本語言,直接運行在數據庫上。同時,SQL語句與數據在數據庫上的存儲方式無關,只是不同的數據庫對
執行一條sql語句update多條記錄實現思路
如果你想更新多行資料,並且每行記錄的各欄位值都是各不一樣,你會怎麼辦呢?本文以一個示例向大家講解下如何實現如標題所示的情況,有此需求的朋友可以瞭解下 通常情況下,我們會使用以下SQL語句來更新欄位值: 複製程式碼 程式碼如下: UP
利用正則匹配url是否合法對於有的url會浪費過長時間使程式卡死,切記!
改進:改成匹配url是否為以某個結尾的,至於非法的url就讓Jsoup.connect(url)把異常拋棄 //啟動該正則匹配特別的慢 // public static String regex = "^([hH][tT]{2}[pP]:/*|[hH][tT]{2}[pP][sS]
一條SQL查詢語句的執行過程
來源於極客時間《MySQL實戰》 最近剛剛購買了極客時間的課程《MySQL實戰45講》,我會在這裡將學習到的知識點做一個總結。 本節主要是講MySQL的基礎架構。比如執行以下語句時: mysql> select * from T where ID=10; 複製程式碼 這條語句在MySQL
當我們輸入一條 SQL 查詢語句時,發生了什麼?
我們經常說,看一個事兒千萬不要直接陷入細節裡,你應該先鳥瞰其全貌,這樣能夠幫助你從高維度理解問題。同樣,對於 MySQL 的學習也是這樣。平時我們使用資料庫,看到的通常都是一個整體。比如,你有個最簡單的表,表裡只有一個 ID 欄位,在執行下面這個查詢語句時: 複製程式
一條SQL查詢是如何執行的
mysql> select * from T where ID=10; 我們看到的只是輸入一條語句,返回一個結果,卻不知道這條語句在 MySQL 內部的執行過程。 所以今天我想和你一起把 MySQL 拆解一下,看看裡面都有哪些“零件”,希望藉由這個拆解過程,讓你對 MySQL
MyBatis中的多表操作情形一:一對一(方式1:一條sql語句查詢,MyBatis3.0可以用association和collection標籤)
MyBatis支援多表操作,即可以將資料庫中多表的關係對映到物件之間的關係中 表與表之間的關係可以有:一對一,一對多,多對多 關係一演示案例:人和身份證是一對一的,分別建兩個表person和card,其中person的cardid欄位外來鍵關聯card的id,
一條SQL語句提交後,db2都做了什麼?
一直在做 db2 資料倉庫的運維工作,對一些常用操作已經非常熟悉,但是總感覺自己學到是仍然是操作的細節,而不是真正的知識。如果你問我,一條 SQL 語句提交後,db2 都做了哪些工作,我可能會有點慌,因為我不能肯定的回答出來。於是,我就搜尋一些資料,結合自己的理解,總結一下關於 db2 體系
MySQL實戰 -- 一條SQL查詢語句是如何執行的?
今天主要看一下MySQL 的基礎架構,主要參考:前阿里技術專家丁奇的課程,感興趣可以通過下面方式微信掃碼購買: 來跟你聊聊 MySQL 的基礎架構。我們經常說,看一個事兒千萬不要直接陷入細節裡,你應該先鳥瞰其全貌,這樣能夠幫助你從高維度理解問題。同樣,對於 MySQ
MySQL實戰 -- 一條SQL更新語句是如何執行的?
今天主要看一下MySQL 的基礎架構,主要參考:前阿里技術專家丁奇的課程,感興趣可以通過下面方式微信掃碼購買: 前面我們系統瞭解了一個查詢語句的執行流程,並介紹了執行過程中涉及的處理模組。相信你還記得,一條查詢語句的執行過程一般是經過聯結器、分析器、優化器、執行器等功能
02 | 日誌系統:一條SQL更新語句是如何執行的?
#<-- 該文章借鑑林曉斌老師mysql實戰45講 -> 一條SQL更新語句是如何執行的? 更新是建立在查詢之上的,可以說更新==查詢+修改,所以更新操作也會走一遍查詢語句的流程. mysql的更新操作涉及到兩個重要日誌檔案:redo log(重做
01 | 基礎架構:一條SQL查詢語句是如何執行的?
#<-- 該文章借鑑林曉斌老師mysql實戰45講 -> 一條SQL查詢語句是如何執行的? mysql 的基礎架構示意圖如下所示: 客戶端----->服務層------->儲存層 服務層包括聯結器,查詢快取,分析器,優化器,執行器,以
hive如何執行一條sql的例子
SQL如何在Mapreduce執行 左邊是資料表,右邊是結果表,這條 SQL 語句對 age 分組求和,得到右邊的結果表,到底一條簡單的 SQL 在 MapReduce 是如何被計算, MapReduce 程式設計模型只包含 map 和 reduce 兩個過程,map 是對資料的劃分,reduce 負責對
java異常-一條sql在Navicat裡能查出資料,但是mybatis查不出來
1、xml裡把#換成$接收引數,不預編譯(比如in查詢時,拼裝好的ids) 2、可能是映射出錯。(resultMap錯了或者resultType錯了) resultMap可以連續寫多個。 3、引數錯了,多了符號。比如 需要 id= '87adbdd21e61267ee
只使用一條sql語句,刪除表中的重複記錄
一個表,表1,ref(唯一值),type(有重複)如何去掉重複記錄。 建表sql語句: -- ---------------------------- -- Table structure for `deletechongfu` -- -------------------