對mysql優化時一個綜合性的技術,主要包括
a: 表的設計合理化(符合3NF)
b: 添加適當索引(index) [四種: 普通索引、主鍵索引、唯一索引unique、全文索引]
c: 分表技術(水平分割、垂直分割)
d: 讀寫[寫: update/delete/add]分離
e: 存儲過程 [模塊化編程,可以提高速度]
f: 對mysql配置優化 [配置最大並發數my.ini, 調整緩存大小 ]
g: mysql服務器硬件升級
h: 定時的去清除不需要的數據,定時進行碎片整理(MyISAM)
=============================================================
PS:MYSQL使用小技巧
了解mysql數據庫的一些運行狀態如何查詢(比如想知道當前mysql運行的時間/一共執行了多少次select/update/delete.. / 當前連接)
常用的:
show status like ‘uptime’ ;
show stauts like ‘com_select’ show stauts like ‘com_insert’ ...類推 update delete
☞ show [session|global] status like .... 如果你不寫 [session|global] 默認是session 會話,指取出當前窗口的執行,如果你想看所有(從mysql 啟動到現在,則應該 global)
show status like ‘connections’;
//顯示慢查詢次數
show status like ‘slow_queries’;
show variables like ‘long_query_time’ ; //可以顯示當前慢查詢時間
set long_query_time=1 ;//可以修改慢查詢時間
delimiter $$
explain 可以幫助我們在不真正執行某個sql語句時,就執行mysql怎樣執行,這樣利用我們去分析sql指令.
在默認情況下,我們的mysql不會記錄慢查詢,需要在啟動mysql時候,指定記錄慢查詢才可以
bin\mysqld.exe - -safe-mode - -slow-query-log [mysql5.5 可以在my.ini指定]
bin\mysqld.exe –log-slow-queries=d:/abc.log [低版本mysql5.0可以在my.ini指定]
先關閉mysql,再啟動, 如果啟用了慢查詢日志,默認把這個文件放在
my.ini 文件中記錄的位置
#Path to the database root
datadir="C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.5/Data/"