mysql優(yōu)化的常用方法有哪些??
問(wèn)題描述
不適用memcahe和redis這些?單從表和字段的設(shè)計(jì),包括怎么提高查詢(xún)速度呢???
問(wèn)題解答
回答1:字段優(yōu)化VARCHAR 長(zhǎng)度不要分配太多, 夠用就好
盡量使用 TINYINT、SMALLINT、MEDIUM_INT 作為整數(shù)類(lèi)型而非 INT
使用枚舉或整數(shù)代替字符串類(lèi)型
盡量不要使用 NULL 字段, 因?yàn)榭赡軙?huì)導(dǎo)致索引失效
盡量使用 TIMESTAMP而非 DATETIME, 因?yàn)?TIMESTAMP 只占用4字節(jié), 而 DATETIME 占用8字節(jié).
添加索引對(duì)頻繁查詢(xún)的字段添加索引.
不要在 WHERE 中對(duì)字段進(jìn)行 NULL 值判斷, 否則將導(dǎo)致引擎放棄使用索引而進(jìn)行全表掃描
建立索引的字段需要有盡可能大的區(qū)分度. 像 性別 這樣的字段, 只有兩個(gè)值的, 就不要建索引了.
注意最左前綴匹配原則.
回答2:設(shè)置開(kāi)啟慢查詢(xún)?nèi)罩荆胑xplain分析sql語(yǔ)句,explain extended分析show warnings查看mysql優(yōu)化器內(nèi)部改寫(xiě)的sql語(yǔ)句等等,高性能mysql這本書(shū)上有介紹,可以看看
相關(guān)文章:
1. python - 數(shù)據(jù)與循環(huán)次數(shù)對(duì)應(yīng)不上2. python - 如何對(duì)列表中的列表進(jìn)行頻率統(tǒng)計(jì)?3. thinkPHP5中獲取數(shù)據(jù)庫(kù)數(shù)據(jù)后默認(rèn)選中下拉框的值,傳遞到后臺(tái)消失不見(jiàn)。有圖有代碼,希望有人幫忙4. python小白 關(guān)于類(lèi)里面的方法獲取變量失敗的問(wèn)題5. django - Python error: [Errno 99] Cannot assign requested address6. javascript - 如何用最快的速度C#或Python開(kāi)發(fā)一個(gè)桌面應(yīng)用程序來(lái)訪(fǎng)問(wèn)我的網(wǎng)站?7. python - Scrapy如何得到原始的start_url8. python小白,關(guān)于函數(shù)問(wèn)題9. linux運(yùn)維 - python遠(yuǎn)程控制windows如何實(shí)現(xiàn)10. 求救一下,用新版的phpstudy,數(shù)據(jù)庫(kù)過(guò)段時(shí)間會(huì)消失是什么情況?
