設計一個數據庫
索引問題
二叉樹和平衡二叉樹
B-Tree樹
B+-Tree樹
hash索引 優缺點
密集索引 和 稀疏索引
MyISAM 稀疏索引和其餘 innoDB 只有密集索引 (彙集索引 非彙集索引)
MyISAM 的 索引和數據是分開的 innoDB的主鍵索引和數據是在一塊的 他們表結構都是單獨儲存的
問題
查看數據庫參數 show variables like '%quer%'
slow_query_log on/off 慢日誌 slow_query_log_file 地址 慢的 sql 輸出地址 long_query_time 10.00000 超過這個時間的sql 會被定義爲慢sqlsql
查看系統運行中慢sql的count show status like '%slow_queriex%'
打開慢sql日誌 set global slow_query_log = on ;
慢查詢sql爲1s set global long_query_time = 1 ;(重連回生效!!!,重啓會還原!!能夠配置到啓動參數,)
Explain + sql
加索引sql -> alter table 表 add index idx_name(字段);
強制使用主鍵索引 sql + force index(primary); 有時候 count(id)不會走主鍵索引,由於innoDB的主鍵索引的葉子節點存在數據,sql優化器會優先使用某個字段的彙集索引列的索引(假若有), 因此沒有索引的innoDB count比MyISAM的count慢,加個索引就行了!~~~~
最左匹配原則