這幾天了解了下關於mysql數據庫的性優化和設計方面的內容,現在做一下自己學習的小結,後續我會繼續深入學習,完善下總結:
1、使用索引
每張表最多可以做16個索引,支持多列索引和全文索引
建立索引:create index index_name on users(username);
查看索引:show index from users;
是一把雙刃劍,建不建立索引,主要看表的功能,找好一個平衡點,。
2、使用explain分析查詢
在查詢在用explain
explain select *from users;
3、調整mysql內部配置
(1)、改變索引緩沖區長度(key_buffer);
推薦設置整個系統內存的25%。
(2)、改變表長(read_buffer_size)
當數據庫對某個表進行頻繁的掃描的時候,mysql會分配一段內存緩沖區,如果覺得掃描進行的太慢,可以適當將該值大小。
(3)、設定打開表的數目的大小(table_cache)
該變量控制mysql在任何時候打開表的最大數目,由此來控制服務器響應輸入請求的能力。他跟max_connections
(4)、對緩查詢設定一個時間限制(long_query_time)
ySQL帶有“慢查詢日志”,它會自動地記錄所有的在一個特定的時間范圍內尚未結束的查詢。這個日志對於跟蹤那些低效率或者行為不端的查詢以及尋找優化對象都非常有用。long_query_time變量控制這一最大時間限定,以秒為單位。也可設置為ms,但是需要打補丁。
至於安全方面的考慮,比如測試數據庫和線上分離、備份、主從等,這些後續再談,時間緊迫,先寫這麼多,待續...