mysql優化方案總結
u Mysql數據庫的優化技術
對mysql優化時一個綜合性的技術,主要包括
a: 表的設計合理化(符合3NF)
b: 添加適當索引(index) [四種: 普通索引、主鍵索引、唯一索引unique、全文索引]
c: 分表技術(水平分割、垂直分割)
d: 讀寫[寫: update/delete/add]分離
e: 存儲過程 [模塊化編程,可以提高速度]
f: 對mysql配置優化 [配置最大並發數my.ini, 調整緩存大小 ]
g: mysql服務器硬件升級
h: 定時的去清除不需要的數據,定時進行碎片整理(MyISAM)
g:mysql語句本身的優化
下面是一些mysql基本使用命令。
一:mysql查看基本命令
(1):查看當前有哪些數據庫
show databases;
(2):使用mysql數據庫
use test;
(3):查看當前數據庫下的表
show tables;
(4):查看上述grade表建立的命令
show create table grade;
(5):查看student表的結構
desc student;
(6):查看數據庫支持的存儲引擎
show engines;
show engines \G ; // \G讓結果更美觀
(7):查看默認存儲引擎
show variables like 'storage_engine';
二:mysql的修改表
(1)將grade表的course字段的數據類型修改為varchar(20)
alter table grade modify course varchar(20);
(2)將s_num字段的位置改到course前面
alter table grade modify s_num int(10) after id;
(3)將grade字段改名為score
alter table grade change grade score varchar(10);
(4)刪除grade的外鍵約束
alter table grade drop foreign key grade_fk;
(5)將grade的存儲引擎修改為INnoDB
alter grade engine=INnoDB;
(6)將student的address字段刪除
alter table student drop address;
(7)在student表中增加名位phone的字段
alter table student add phone int (10);
(8)將grade的表名修改為gradeinfo
lter table grade rename gradeinfo;
(9):刪除student表
drop table student; //由於先前已經刪除外鍵,所以才能刪除父表studnet
Mysql優化查詢工具:工具之三種:使用索引,使用EXPLAIN分析查詢以及調整MySQL的內部配置
創建索引:create INDEX idx_typeid on book1(typeid);
MySQL在建立索引時,對不同的數據表有不同的細節:MyISAM數據表,數據行將被保存在數據文件裡,其索引值將被保存在索引文件裡,而BDB處理程序把同一個BDB數據表的數據值和索引值保存在同一個文件裡,InnoDB處理程序則是把所有InnoDB數據表的數據值和索引值都保存在同一個表空間裡。
建立索引也要考慮它的缺點。首先,索引需要消耗磁盤空間(現在磁盤已經很便宜了),索引越多,消耗的空間也就有多。對於MyISAM數據表,過多的索引會使索引文件優先與數據文件達到尺寸上限。對於BDB數據表,因為它把數據值和索引值都保存在同一個文件裡,所以增加索引必然會使他更快地達到BDB數據文件的尺寸上限。InnoDB數據表共同分享著InnoDB表空間裡的存儲空間,所以增加索引必然會加快InnoDB表空間的消耗速度。不過,只要還能增加磁盤空間,就能通過給InnoDB表空間增加組件的辦法擴充之
其次,索引過多,會減慢被索引的數據列上的插入、刪除和修改操作的速度。因為在寫入記錄時,MySQL還必須修改與之有關的所有索引
設計表時的優化
可以將相關表的字段的長度設置的一樣,查詢時可以減少查詢時匹配的次數
MySql優化方案總結:http://www.cnblogs.com/xiaoblog/p/4209930.html
數據庫優化以及一些常見的數據庫應用函數和方法:http://www.cnblogs.com/yydcdut/p/3888308.html