筆試題:優(yōu)化mysql數(shù)據(jù)庫(kù)的方法
優(yōu)化mysql數(shù)據(jù)庫(kù)的方法。(4分,多寫多得)
(1).數(shù)據(jù)庫(kù)設(shè)計(jì)方面,這是DBA和Architect的責(zé)任,設(shè)計(jì)結(jié)構(gòu)良好的.數(shù)據(jù)庫(kù),必要的時(shí)候,去正規(guī)化(英文是這個(gè):denormalize,中文翻譯成啥我不知道),允許部分?jǐn)?shù)據(jù)冗余,避免JOIN操作,以提高查詢效率
(2).系統(tǒng)架構(gòu)設(shè)計(jì)方面,表散列,把海量數(shù)據(jù)散列到幾個(gè)不同的表里面.快慢表,快表只留最新數(shù)據(jù),慢表是歷史存檔.集群,主服務(wù)器Read & write,從服務(wù)器read only,或者N臺(tái)服務(wù)器,各機(jī)器互為Master
(3).(1)和(2)超越PHP Programmer的要求了,會(huì)更好,不會(huì)沒(méi)關(guān)系.檢查有沒(méi)有少加索引
(4).寫高效的SQL語(yǔ)句,看看有沒(méi)有寫低效的SQL語(yǔ)句,比如生成笛卡爾積的全連接啊,大量的Group By和order by,沒(méi)有l(wèi)imit等等.必要的時(shí)候,把數(shù)據(jù)庫(kù)邏輯封裝到DBMS端的存儲(chǔ)過(guò)程里面.緩存查詢結(jié)果,explain每一個(gè)sql語(yǔ)句
(5).所得皆必須,只從數(shù)據(jù)庫(kù)取必需的數(shù)據(jù),比如查詢某篇文章的評(píng)論數(shù),select count(*) ... where article_id = ? 就可以了,不要先select * ... where article_id = ?然后msql_num_rows.
只傳送必須的SQL語(yǔ)句,比如修改文章的時(shí)候,如果用戶只修改了標(biāo)題,那就update ... set title = ? where article_id = ?不要set content = ?(大文本)
(6).必要的時(shí)候用不同的存儲(chǔ)引擎.比如InnoDB可以減少死鎖.HEAP可以提高一個(gè)數(shù)量級(jí)的查詢速度
【筆試題:優(yōu)化mysql數(shù)據(jù)庫(kù)的方法】相關(guān)文章:
Linux數(shù)據(jù)庫(kù)的MySQL性能優(yōu)化技巧09-21
Linux數(shù)據(jù)庫(kù):關(guān)鍵的MySQL性能優(yōu)化技巧10-11
一些關(guān)于MySql加速和優(yōu)化的筆試題11-26
淺談數(shù)據(jù)庫(kù)的查詢優(yōu)化方法分析09-27
調(diào)節(jié)和優(yōu)化MySQL安裝的技巧10-31
幾個(gè)MySql的筆試題11-26
MYSQL基礎(chǔ)筆試題11-26
遇到的Mysql的筆試題11-26
MySQL筆試題目集錦11-26