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
優化方案總結:
資料庫優化以及一些常見的資料庫應用函式和方法:
Mysql優化方案
client 客戶端編碼方式,最好和服務端儲存一致 loose default character set utf8 mysqld 埠port 3306 mysql根目錄 basedir d ide mysql 5.6.25 winx64 資料檔案存放目錄 datadir d ide mysql 5...
MySQL優化方案
select 和select 欄位的優化。我們先測試一下,我的測試資料庫裡有26萬條記錄。再查詢一下列數 select count from information schema.columns where table schema lezhi data and table name demo jo...
mysql 優化方案
對於某些文字字段,例如 省份 或者 性別 我們可以將它們定義為enum型別。因為在mysql中,enum型別被當作數值型資料來處理,而數值型資料被處理起來的速度要比文字型別快得多。這樣,我們又可以提高資料庫的效能。2 使用連線 join 來代替子查詢 sub queries mysql從4.1開始支...