方法1:
將字段很多的表分解為多個表。
通過這種分解,可以提高表的查詢效率。對於字段很多,且有些字段使用不頻繁的表,可以通過這種分解的方式優化資料庫的效能。
方法2:
增加中間表
對於經常需要聯合查詢的表,可以建立中間表 提高查詢效率。通過建立中間表,把需要經常聯合查詢的資料插入到中間表,然後將原來的聯合查詢改為對中間表的查詢,以此來提高查詢效率。
方法3:
增加冗餘字段
合理加入冗餘字段可以增加查詢的速度。從資料庫效能來看,為了提高查詢速度而增加少量的冗餘 大部分是可以接受的。是否增加冗餘提高資料庫效能,這要根據實際需求綜合分析。
方法4:
優化插入記錄的速度
4.1 禁止索引
插入記錄時,mysql會根據表的索引對插入的記錄建立索引。如果插入大量資料,建立索引會降低插入記錄的速度,為了解決這種問題,可以在插入記錄之前,僅用索引,資料插入完畢後再開啟索引。
禁止索引
alter
table table_name disable keys
開啟索引
alter
table table_name enable keys
4.2、禁止唯一性
插入資料時,mysql會對插入的記錄進行唯一性校驗,這種唯一性校驗也會降低插入記錄的速度,為了降低這種情況對查詢速度的影響,我們先禁止唯一性檢查。
禁止唯一性檢查語句
set unique_checks=0;
開啟唯一性檢查語句
set unique_checks=1;
4.3、使用批量插入。
插入多條記錄時,可以使用一條 insert 語句插入一條記錄,也可以使用一條insert語句插入多條。後者的速度比前者的速度要快。
4.4、使用load data infile 批量匯入
當需要批量匯入資料時,如果能有load data infile 批量匯入,就盡量使用。因為 load data infile 語句 匯入資料比insert 語句快。
禁用外來鍵檢查語句
set foreign_key_checks=0;
恢復對外鍵的檢查語句
set foreign_key_checks=1;
禁止自動提交
set autocommit=0;
恢復自動提交
set aotucommit=1;
方法5:
分析表、檢查表、優化表
分析表 :主要是分析關鍵字的分布
檢查表:主要是檢查表是否存在錯誤、
優化表:主要是消除刪除、更新造成的空間浪費。
分析表語句:
analyze table t_order_info
table op msg_type msg_text
cgjr.t_order_info analyze status ok
檢查表語句:
check table t_order_info
優化表:
optimize table t_user_info
效能優化 MySQL資料庫優化
可以從哪幾個方面進行資料庫的優化?如下圖所示 a sql及索引優化 根據需求寫出良好的sql,並建立有效的索引,實現某一種需求可以多種寫法,這時候我們就要選擇一種效率最高的寫法。這個時候就要了解sql優化 b 資料庫表結構優化 根據資料庫的正規化,設計表結構,表結構設計的好直接關係到寫sql語句。c...
資料庫效能優化 MySQL
序 即使有較長的快取有效期和較理想的快取命中率,但是快取的建立和快取過期後的重建都是需要訪問資料庫的。對資料庫寫操作不是很容易引入快取策略。11.1 檢視資料庫狀態 可以通過show status show innodb status 來檢視mysql資料庫的狀態,使用mysqlreport這個第三...
效能優化 mysql資料庫
一 mysql常用命令 1.開啟日誌 1 show global variables like genera 2 set global general log on 3 set global general log off 2.mysql如果開了set autocommit 0,那麼所有的語句一定是...