mysql數據庫優化之 如何選擇合適的列建立索引
1. 在where 從句,group by 從句,order by 從句,on 從句中出現的列;
2. 索引字段越小越好;
3. 離散度大的列放到聯合索引的前面;比如:
select * from payment where staff_id = 2 and customer_id = 236;
針對上面的查詢是 index(sftaff_id, customer_id) 好?還是index(customer_id, staff_id)好?
因為customer_id的離散度更大,因此用後面的更合適!!
那麽問題來了。怎麽判斷離散度呢,可以使用 select count(distinct customer_id), count(distinct staff_id) from 表名
誰的值大,說明這一些列的離散度更高!
mysql數據庫優化之 如何選擇合適的列建立索引
相關推薦
mysql數據庫優化之 如何選擇合適的列建立索引
索引 taf order 誰的 bsp 選擇 spa mysql 查詢 1. 在where 從句,group by 從句,order by 從句,on 從句中出現的列; 2. 索引字段越小越好; 3. 離散度大的列放到聯合索引的前面;比如: select * fro
mysql數據庫優化之開啟慢查詢日誌
查詢日誌 long 沒有 sin 進入 src mage image 查詢 進入mysql數據庫,使用 show variables like ‘slow_query_log‘; 查看是否開啟了慢查詢日誌 value值為OFF,則慢查詢日誌沒有開啟,在
mysql數據庫優化之語句優化
關於 .net exp 大於 發現 ges 主鍵 dump ref 數據庫優化目的 避免出現頁面訪問錯誤 1、由於數據庫鏈接timeout產生頁面5xxx錯我 2、由於慢查詢造成頁面無法加載 3、由於阻塞造成數據無法提交 如何發現有問題的sql 使用mysql慢查日誌對
MySQL數據庫學習之SQL語句如何優化?數據庫開發
郵箱 list key 推薦 sin ges 操作 開關 RoCE 1) 現場抓出慢查詢語句 show full processlist; 2) 配置參數: slow_query_log_file = ON 慢查詢開啟開關 long_query_time =2 記
MySQL數據庫優化
加載 ima span 無法加載 速度 l數據庫 ron 查詢 問題 數據庫優化的目的 1.避免出現頁面訪問錯誤 由於數據庫連接 timeout 產生頁面5xx錯誤 由於慢查詢造成頁面無法加載 由於阻塞造成數據無法提交 2.增加數據庫的穩定性 很多數據庫問題都是由低效
Mysql 數據庫優化(三)——分區和分表【個人經驗】
incr 返回 for 16px 使用 tree 主鍵 ref 相同 引:MyISAM存儲引擎的表在數據庫中,每一個表都被存放為三個以表名命名的物理文件。 1、首先肯定會有任何存儲引擎都不可缺少的存放表結構定義信息的.frm文件, 2、另外還有.MYD和
oracle數據庫優化之統計信息
oracle性能優化1.統計信息簡介統計信息主要是描述數據庫中表,索引的大小,規模,數據分布狀況等的一類信息。比如,表的行數,塊數,平均每行的大小,索引的leaf blocks,索引字段的行數,不同值的大小等,都屬於統計信息。CBO正是根據這些統計信息數據,計算出不同訪問路徑下,不同join 方式下,各種計劃
MySQL數據庫同步之悲觀鎖和樂觀鎖
我們 測試 http 鎖定 以及 再次 否則 即使 name 測試需要:本地開兩個測試窗口 悲觀鎖 悲觀鎖它指的是對數據被外界(包括本系統當前的其他事務,以及來自外部系統的事務處理)修改持保守態度,在整個數據處理過程中,將數據處於鎖定狀態。悲觀鎖的實現,往往依靠數據庫提供的
數據庫優化之創建索引
索引 sql 楊書凡 索引提供指針以指向存儲在表中指定列的數據,然後根據指定的次序排列這些指針,在根據指針到達包含該值的行什麽是索引 數據庫中的索引和數據的目錄相似,利用目錄快速查找所需的信息。在數據庫中,索引是某個表中一列或者若幹列值的集合,以及物流標識這些值的數據頁的邏輯指針清單
數據庫優化之創建視圖
視圖 數據庫 view sql 楊書凡 視圖是保存在數據庫中的SELECT查詢,可在視圖上執行SELECT語句的大多數命令。創建視圖的原因有兩個:一是出於安全考慮,用戶不必看到整個數據庫結構,而隱藏部分數據;二是符合用戶日常業務邏輯,使其對數據更容易理解什麽是視圖? 視圖是
數據庫優化之創建存儲過程、觸發器
存儲過程 觸發器 sql 數據庫 楊書凡 存儲過程可加快查詢的執行速度,提高訪問數據的速度,幫助實現模塊化編程,保存一致性,提高安全性。觸發器是在對表進行插入、更新、刪除操作時自動執行的存儲過程,通常用於強制業務規則。一、存儲過程1. 為什麽需要存儲過程 從客戶端通過網絡向服
MySql數據庫優化可以從哪幾個方面進行?
ini 獲取 oca order by 內部 span 所有 p s fonts http://blog.csdn.net/q602075961/article/details/71076390 1、數據庫優化可以從以下幾個方面進行: 2、項目中,優化mysql之前
MySQL數據庫學習【第九篇】索引原理與慢查詢優化
xxx 結構 復合 unix select查詢 全文搜索 等等 學習 獲取數據 一、介紹 1.什麽是索引? 一般的應用系統,讀寫比例在10:1左右,而且插入操作和一般的更新操作很少出現性能問題,在生產環境中,我們遇到最多的,也是最容易出問題的,還是一些復雜的查詢操作,因此對
mysql數據庫優化的幾種方法
myisam prim ant from 之間 全文索引 響應 edi 大數 1、選取最適用的字段屬性 MySQL可以很好的支持大數據量的存取,但是一般說來,數據庫中的表越小,在它上面執行的查詢也就會越快。因此,在創建表的時候,為了獲得更好的性能,我們可以將表中字段的寬度
MySQL數據庫優化的八種方式
keyword nod 就是 body foo foreign otn 失敗 被鎖 引言: 關於數據庫優化,網上有不少資料和方法,但是不少質量參差不齊,有些總結的不夠到位,內容冗雜 偶爾發現了這篇文章,總結得很經典,文章流量也很大,所以拿到自己的總結文集中,積
1.數據庫優化之索引
索引數據 mysql 數據庫 索引:索引是存儲引擎用來快速找到記錄的一種數據結構。同樣,這也是索引的基本功能。 索引對良好的性能非常重要,尤其是當數據量越來越大時,良好的索引設計愈發重要。如果索引設計的不合理,性能反而會下降。 索引優化應該是對查詢優化最有效的手段了,索引可以輕易的將查詢性能提升幾
mysql數據庫優化一
CP 函數 發送數據 schema 單獨 nbsp join post sch 首先看下mysql數據庫發送和接受請求的整個流程 MySQL邏輯架構整體分為三層,最上層為客戶端層,並非MySQL所獨有,諸如:連接處理、授權認證、安全等功能均在這一層處理。 MySQL大多數
數據庫優化之SQL語句優化-記錄
得到 顯式 重要 adding sys 狀態 檢驗 發現 最大數 1. 操作符優化 (a) IN 操作符 從Oracle執行的步驟來分析用IN的SQL與不用IN的SQL有以下區別: ORACLE試圖將其轉換成多個表的連接,如果轉換不成功則先執行IN裏面的子查詢,再查詢外層的
數據庫優化之結構設計
IT 規範 業務主鍵 引擎 導致 .cn 數據庫 多表 安全性 設計好處 良好的數據庫邏輯設計和物理設計師數據庫獲得高性能的基礎 範式化設計和反範式化設計(減少冗余、減少異常、讓數據組織的更加和諧) 優化目的 減少數據冗余(盡量) 盡量避免數據維護中出現更新、插入和刪
Mysql數據庫學習之mysql半同步復制簡析
mysql數據庫 數據庫管理員 數據庫工程師 數據庫開發 從5.7版本開始MySQL通過擴展的方式支持了半同步復制,當主庫執行一個更新操作事務時,提交操作會被阻止直到至少有一個半同步的,復制slave確認已經接收到本次更新操作,主庫的提交操作才會繼續,半同步復制的slave發送確認消息只會在本