Professional Documents
Culture Documents
14 Toi Uu Tinh Chinh
14 Toi Uu Tinh Chinh
Tng tc Client-Server
Kt ni ti server CSDL: Thay v m mt kt ni mi cho mi cu lnh SQL, bn khch nn gi mt kt ni m cho ton b phin lm vic. M v ng cc kt ni tiu tn ti thi gian Truyn d liu: Ly tng dng mt kt qu t server chm hn ly nhm cc dng
Giao dch
Ni chung, hiu nng c nng cao bng cch s dng cc giao dch nh, ngn Cc truy vn nh gim nguy c b tc (deadlock) S dng c khng kha (READ UNCOMMITED level) thc hin nhanh nu kt qu khng qu chnh xc c chp nhn
Ti u bng
Cu lnh OPTIMIZE TABLE thc hin mt s chc nng nh chng phn mnh, sp xp cc ch mc ca cc bng
Lu li cc truy vn chm
Truy vn
Cc truy vn khong (tm cc gi tr trong mt khong) chm hn truy vn tm gi tr chnh xc Truy vn join, nested v cc truy vn s dng cc mnh nh DISTINCT v ORDER BY thng chm
Ch mc (index)
Ti u ch mc
MySQL c th s dng ch mc trn cc ct hiu qu hn nu c khai bo cng kiu v cng c V d VARCHAR(10) v CHAR(10) cng kch thc VARCHAR(10) v CHAR(15) khng cng kch thc
Nn nh ch mc khi
nh ch mc cc ct xut hin trong iu kin tm kim nh ch mc cc ct xut hin trong iu kin ni. MySQL t ng to cc ch mc khi nh ngha cc kha chnh v cc kha ngoi
Khng nn nh ch mc khi
Khng nn nh ch mc cc ct ch xut hin trong mc SELECT Khng nn nh ch mc cc ct c min nh. Thc t khi MySQL tm ra rng mt gi tr xut hin trong hn 30% cc dng ca bng, MySQL s khng s dng ch mc Ch to cc ch mc nu cn
Loi ch mc
Hash index: s dng hm bm p dng cho gi tr ca ct. Hash indexes rt nhanh vi so snh chnh xc (= hoc <=>) operators. Nhng chm vi so snh gi tr trong khong gi tr B-tree indexes: s dng hiu qu vi so snh chnh xc hoc so snh da trn khong )<, <=, =, >=, >, <>, !=, v BETWEEN). B-tree indexes c th s dng cho tm kim theo mu (LIKE) nu mu bt u bng ch ci thay v k t wildcard
Ph thuc vo cc chi tit ca cc bng, cc ct, ch mc v cc iu kin trong mnh WHERE, b ti u ca MySQL s xem xt nhiu k thut thc thi truy vn hiu qu Cu lnh EXPLAIN c th s dng ly thng tin v cch MySQL thi hnh mt cu lnh SELECT
http://dev.mysql.com/doc/refman/5.5/en/explain-output.html
InnoDB duy tr mt khng gian lu tr gi l buffer pool lu tr d liu v ch mc trong b nh Bit cch InnoDB lm vic v s dng u im lu gi d liu thng xuyn trng b b nh l mt kha cnh quan trng trong hiu chnh MySQL
innodb_buffer_pool_size Xc nh kch thc ca buffer pool innodb_buffer_pool_instances Chia buffer pool thnh nhng vng ring bit gim tranh chp trong cc thao tc c v ghi ng thi Xem thng tin v trng thi InnoDB, s dng lnh SHOW ENGINE INNODB STATUS
gim qu trnh vo ra, MyISAM s dng k thut cache lu cc khi ch mc c truy cp thng xuyn nht trong b nh. Mt cu trc d liu gi l key cache c duy tr
ti trc mt ch mc vo cache, s dng cu lnh LOAD INDEX INTO CACHE V d: LOAD INDEX INTO CACHE table1, table2 IGNORE LEAVES;
Thit lp tham s
SET GLOBAL keycache1.key_buffer_size=128*1024; SHOW VARIABLES LIKE 'key_buffer_size'; xa key cache, thit lp kch c thnh 0
Query cache lu cu lnh SELECT cng vi kt qu tng ng c tr li cho my khch. Nu nhn c mt cu lnh tng t sau , server ly kt qu t trong cache thay v dch v thi hnh lnh Query cache hu ch khi c cc bng khng thay i thng xuyn Nu mt bng thay i, tt c cc cached query s dng bng khng cn hiu lc v b loi khi cache
Mc d cc gi tr c kh nng c truy xut t b nh (t InnoDB buffer pool hoc MyISAM key cache), s dng query cache trnh qu ti trong s l truy vn, quyt nh liu c s dng qut bng v xc nh cc khi d liu cho mi dng
query_cache_type: Xc nh ch hot ng ca query cache query_cache_limit: Xc nh kch thc ln nht cho mt kt qu c th lu trong cache query_cache_size: Xc nh dung lng b nh phn phi cho cc Query cache. Gi tr ngm nh ca bin l 0, c ngha query caching khng c bt
query_cache_type:
0 hoc OFF: Khng lu tr cc kt qu hoc truy xut cc kt qu c l tr 1 hoc ON: Cho php lu tr tr cc cu lnh bt u vi SELECT SQL_NO_CACHE. 2 hoc DEMAND: Ch lu tr cc kt qu bt u SELECT SQL_CACHE.
C th chun on cng vic MySQL servert ang lm xc nh cc im tc. Kim tra danh sch cc lung ang thi hnh trong server: SHOW FULL PROCESSLIST;
http://www.mysql.com http://dev.mysql.com/doc/refman/5.5/en/