1. 程式人生 > >Mysql優化面試題

Mysql優化面試題

 最好的優化資料庫表的方法就是不查詢!!
  1. 對於可以不查的資料就不要查,既是可以查三列的資料,就不要查五列,甚至使用*來操作

  2. 對於查詢操作比較頻繁的欄位,新增使用索引,提高查詢的速度

  3. 避免用null,null要用特殊的位元組來標註,不利於索引,儘量設定為not null,

  4. 能夠使用定長滿足的就使用定長,如varchar(20) 能解決不要用varchar(100)

  5. 索引並不是越多越好,索引可以提高 select 的效率,但同時也降低了 insert 及 update 的效率,因為 insert 或 update 時有可能會重建索引,所以怎樣建索引需要慎重考慮,視具體情況而定。一個表的索引數最好不要超過6

  6. 加多列聯合索引如 index(a,b,c)

  7. 應儘量避免在 where 子句中使用!=或<>操作符,否則將引擎放棄使用索引而進行全表掃描

  8. 常用欄位和不常用欄位要分離.,需要結合網站具體的業務來分析,分析欄位的查詢場景,查詢頻度低的欄位,單拆出來.

  9. 對於左字首不易區分的列 ,建立索引的技巧
    如url的索引建立,由於http://www.*.com 可以反轉存,或者是偽雜湊用crc32 將url轉為一個數32位無符號整數,建立索引

  10. 使用optimize table 表名 ,可以定期優化資料表.

    注意: 修復表的資料及索引碎片,就會把所有的資料檔案重新整理一遍,使 之 對齊.這個過程,如果表的行數比較大,也是非常耗費資源的操作.
    所以,不能頻繁的修復.如果表的Update操作很頻率,可以按周/月,來修復.
    如果不頻繁,可以更長的週期來做修復.

  11. sql語句的書寫,如:如果在b上建立了索引 ,a沒有
    “where a=1 and b=1”應該改為“where b=1 and a=1”提高效率

  12. 不論效能如何,不要有子查詢和巢狀SQL,儘量不要有join查詢,一條大的sql,如果可以分成幾個小SQL順序執行,分了吧,速度會快很多

  13. 使用explain命令,觀察type列,可以知道是否是全表掃描,和索引的使用形式,觀察key可以知道使用了哪個索引,觀察key_len可以知道索引是否使用完成,觀察rows可以知道掃描的行數是否過多,觀察extra可以知道是否使用了臨時表和進行了額外的排序操作

  14. 檢視慢查詢日誌,找出執行時間長的SQL試著優化去吧~~

MySQL預設沒有開啟慢查詢,
開啟:set global slow_query_log='ON';

慢查詢具體操作參考:http://www.emtalk.net/sql/mysql/395.html

慢慢總結面試mysql優化就不怕了,重在積累(…………..)

相關推薦

mysql 優化試題

第一方面:30種mysql優化sql語句查詢的方法 1.對查詢進行優化,應儘量避免全表掃描,首先應考慮在 where 及 order by涉及的列上建立索引。   2.應儘量避免在 where 子句中使用 !=或<> 操作符,否則將引擎放棄使用索引而進行全表掃描。   3.應儘量避

Mysql優化試題

最好的優化資料庫表的方法就是不查詢!! 對於可以不查的資料就不要查,既是可以查三列的資料,就不要查五列,甚至使用*來操作 對於查詢操作比較頻繁的欄位,新增使用索引,提高查詢的速度 避免用null

常見mysql優化 試題

優化哪些方面 1.表設計上        正規化,儲存引擎,欄位型別 2.功能上        索引,快取,分割槽 3.sql語句上        合理sql,經驗 4.架構上        主從複製,負載均衡,讀寫分離 儲存引擎 儲存引擎是真正儲存資

(轉)linux運維必會MySQL企業試題

要求 延遲 man 線程 binlog日誌 生產 mil mysqld 表達 linux運維必會MySQL企業面試題 老男孩教育運維班全體學員MySQL必會企業面試題最實戰、最細致、最落地的運維實訓基地,老男孩教育連續多年國內平均就業工資最高! 數據

Linux運維必會的mysql企業試題大全

計劃 導致 存儲 提供服務 linux運維 out apr 請求 代表性 (1)基礎筆試命令考察 1.開啟MySQL服務/etc/init.d/mysqld startservice mysqld startsystemctl start mysqld 2.檢測端口是否

Linux運維必會的MySQL企業試題大全 推薦

混合模式 裏的 general inux運維 active 之前 方法 一周 手機 Linux運維必會的MySQL企業面試題大全 推薦 (1)基礎筆試命令考察1.開啟MySQL服務/etc/init.d/mysqld

mysql經典試題

sel tin per sql 得出 本周 公式 第三題 to_days 數據庫優化:這個優化法則歸納為5個層次:1、 減少數據訪問(減少磁盤訪問)2、 返回更少數據(減少網絡傳輸或磁盤訪問)3、 減少交互次數(減少網絡傳輸)4、 減少服務器CPU開銷(減少CPU及

9.mysql SQL試題

Student(S#,Sname,Sage,Ssex) 學生表       S#:學號;Sname:學生姓名;Sage:學生年齡;Ssex:學生性別 Course(C#,Cname,T#) 課程表                    C#,課程編號;Cname:課程名字;T

優化1——資料庫優化試題

1.實踐中如何優化mysql 1) SQL語句及索引的優化 2) 資料庫表結構的優化 3) 系統配置的優化 4) 硬體優化 2.索引的底層實現原理和優化 在 DB2 資料庫中索引採用的是 B+ 樹的結構,索引的葉子節點上包含索引鍵的值和一個指向資料地址的指標。DB2 先

Mysql實戰試題

B Tree 指的是 Balance Tree,也就是平衡樹。平衡樹是一顆查詢樹,並且所有葉子節點位於同一層。 B+ Tree 是基於 B Tree 和葉子節點順序訪問指標進行實現,它具有 B Tree 的平衡性,並且通過順序訪問指標來提高區間查詢的效能。 在 B+ Tree 中,一個節點中

mysql熱點試題

一  mysql資料庫支援事務?  在預設模式下,mysql是autocommit模式的,所有的資料庫更新操作都會被即使提交,所以在該模式下,mysql不支援事務;  在mysql表型別的InnoDB或者BDB的話,mysql支援事務,但需要設定:SET AUTOCOMMIT

java試題之----mysql優化方案

mysql 引擎 它的 易維 range 概述 .com 設置 常用 本文轉載自segmentfault,原文鏈接:https://segmentfault.com/a/1190000006158186。 當MySQL單表記錄數過大時,增刪改查性能都會急劇下降,可以參考以

Mysql優化方面的試題

前言 本文是個人在各種地方收集過來,包括自己總結的問題,都參雜在內,適合中級或者中上級開發面試的難度。 1、MySQL的複製原理以及流程: 基本原理流程,3個執行緒以及之間的關聯; 1. 主:binlog執行緒——記錄下所有改變了資料庫資料的語句,放進master上

Mysql資料庫優化系列(五)------索引優化策略之試題

實驗: Type:range   此處使用上了範圍索引 Key_len:12/3=4列 使用到了索引c1,c2,c3,c4.解析:因為order by c3是有序的,所以c3,c4也用到了索引 上圖用到了c1,c2,c3,order by有序,可以利用索引。 上圖

mysql優化,不用怕試題

  14.並不是所有索引對查詢都有效,SQL是根據表中資料來進行查詢優化的,當索引列有大量資料重複時,SQL查詢可能不會去利用索引,如一表中有欄位sex,male、female幾乎各一半,那麼即使在sex上建了索引也對查詢效率起不了作用。   15.索引並不是越多越好,索引固然可以提高相應的 select

資料庫-試題-MySQL資料庫的優化方法

1、選取最適用的欄位屬性 MySQL可以很好的支援大資料量的存取,但是一般說來,資料庫中的表越小,在它上面執行的查詢也就會越快。因此,在建立表的時候,為了獲得更好的效能,我們可以將表中欄位的寬度設得儘可能小。 例如,在定義郵政編碼這個欄位時,如果將其設定為CHAR(2

MySQL試題之如何優化一條有問題的SQL語句?

類型 審查 存儲ip code 減少 提高 利用 存儲空間 not 如何優化一條有問題的sql語句? 針對sql語句的優化。我們可以從如下幾個角度去分析 回歸到表的設計層面,數據類型選擇是否合理 大表碎片的整理是否完善 表的統計信息,是不是準確的 審查表的執

Mysql試題及千萬級資料查詢優化

今天在說Mysql查詢優化之前,我先說一個常見的面試題,並帶著問題深入探討研究。這樣會讓大家有更深入的理解。 一,Mysql資料庫中一個表裡有一千多萬條資料,怎麼快速的查出第900萬條後的100條資料? 怎麼查,誰能告訴我答案?有沒有人想著,不就一條語句搞定嘛 select * from table limi

樂視mysql試題【轉】

需要 好的 硬件 select 業務 以及 局限性 測試環境 獨立 最近,朋友去樂視面試了mysql DBA,以下是我據整理的樂視mysql面試題答案,供大家參考 1. MYISAM和INNODB的不同?答:主要有以下幾點區別: a)構造上的區別 MyISAM

mysql試題

code use 是否 不為 art ava () table 平均工資 1.根據部門號從高到低,工資從低到高列出員工的信息 select * from employee order by dept_id desc,salary 2.union和union all的區別