問題整理----數據庫

1.設計及模塊劃分

  1. 存儲(文件系統)
  2. 程序實例(對文件系統的管理)
  • 存儲管理(一次加載多個頁)
  • 緩存機制(LRU)
  • SQL解析
  • 日誌管理(binlog)
  • 權限劃分
  • 容災機制
  • 索引管理
  • 鎖管理

2.索引模塊

(1)爲什麼使用索引

不使用索引採用的全文檢索,當數據小的時候是很快的,但是數據很大的時候就會很慢,因此採用索引,提高查詢速度

(2)索引數據結構

  • B-Tree

n階樹,每個根節點至少要有兩個孩子,每個非根節點至少要有ceil(m/2)最多m個節點,關鍵字個數是孩子節點個數-1

  • B+Tree

關鍵字個數是孩子節點個數

優點:

查詢穩定

磁盤I/O減少

支持範圍統計

  • hash索引

查詢很快,但是不支持範圍查詢,和排序操作,不能用部分索引查詢,不能避免表的掃描,hash值相同的就變成了線性搜索。不穩定。

3.索引和非聚簇索引

聚簇索引:主鍵,第一個唯一非空索引,默認創建一個

爲什麼要一定有一個聚簇索引呢?非聚簇索引是需要回表查詢的

4.如何定義慢查詢和優化

  • 根據日誌定位慢查詢sql(慢日誌記錄查詢比較慢的sql記錄)

show variables like '%quer%';
show status like '%show_querues%'//慢sql條數

  • 使用explain工具分析

type:找到數據行的類型:index 和all是要進行優化的

extra:using filesort 和using temporary 是需要優化的

  • 修改sql,儘量使用索引

5.MyISAM和INNODB

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章