MySQL理解與優化

索引

目的:在犧牲物理存儲空間的前提下,加快查詢的速度。
顯示mysql物理存儲的位置: show global variables like '%datadir%';
顯示慢查詢的次數:show variables like 'long_query_time'; # 默認10s
查看索引的使用狀況:show status like 'Handler_read%';
handler_read_key 這個值越大越好,越大說明使用索引的次數就越多
handler_read_rnd_next 這個值越小越好,越大說明查詢越低效mysql

種類:①主鍵索引【primary key】(把某列設爲主鍵,則那一列就是主鍵索引)
②惟一索引【unique key】(即該列具備惟一性,又是索引)
③普通索引【index】
④全文索引【fulltext】(用於分詞)面試

添加索引的注意事項

1.在常常查詢的列上加索引
2.惟一性太差的字段不適合單獨作索引,即便頻繁的查詢條件
select * from user where sex = '男';
3.不會出如今where子句中的字段不須要加索引,頻繁變化的字段也不須要加索引sql

數據庫引擎:InnoDB和MyISAM

1.MyISAM不支持外鍵,InnoDB支持
2.MyISAM不支持事務,不支持外鍵,InnoDB支持
3.二者對數據信息的存儲處理方式不一樣(若是存儲引擎是MyISAM則建立一張表,對應三個文件,若是InnoDB則只有一個文件*.frm,數據存放在ibdata)
4.對於MyISAM數據庫須要定時清理,你drop以後物理存儲也不會釋放
刪除語句:optimize table 表名
5.優化:對於InnoDB能夠設置【innodb_additional_mem_pool = 64M】【innodb_buffer_pool_size = 1G】。對於MyISAM設置【key_buffer_size】數據庫

資源

1.數據庫面試常問的一些基本概念
2.數據庫性能優化之SQL語句優化
3.MySQL數據庫開發常見問題及幾點優化!
4.MySQL的索引是什麼?怎麼優化? 性能優化

相關文章
相關標籤/搜索