mysql優(yōu)化的常用方法有哪些??
問(wèn)題描述
不適用memcahe和redis這些?單從表和字段的設(shè)計(jì),包括怎么提高查詢速度呢???
問(wèn)題解答
回答1:字段優(yōu)化VARCHAR 長(zhǎng)度不要分配太多, 夠用就好
盡量使用 TINYINT、SMALLINT、MEDIUM_INT 作為整數(shù)類型而非 INT
使用枚舉或整數(shù)代替字符串類型
盡量不要使用 NULL 字段, 因?yàn)榭赡軙?huì)導(dǎo)致索引失效
盡量使用 TIMESTAMP而非 DATETIME, 因?yàn)?TIMESTAMP 只占用4字節(jié), 而 DATETIME 占用8字節(jié).
添加索引對(duì)頻繁查詢的字段添加索引.
不要在 WHERE 中對(duì)字段進(jìn)行 NULL 值判斷, 否則將導(dǎo)致引擎放棄使用索引而進(jìn)行全表掃描
建立索引的字段需要有盡可能大的區(qū)分度. 像 性別 這樣的字段, 只有兩個(gè)值的, 就不要建索引了.
注意最左前綴匹配原則.
回答2:設(shè)置開(kāi)啟慢查詢?nèi)罩荆胑xplain分析sql語(yǔ)句,explain extended分析show warnings查看mysql優(yōu)化器內(nèi)部改寫的sql語(yǔ)句等等,高性能mysql這本書上有介紹,可以看看
相關(guān)文章:
1. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問(wèn)題2. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””3. 我何時(shí)應(yīng)該在Java中使用JFrame.add(component)和JFrame.getContentPane()。add(component)4. docker - 如何修改運(yùn)行中容器的配置5. docker鏡像push報(bào)錯(cuò)6. html5和Flash對(duì)抗是什么情況?7. javascript - 請(qǐng)指條明路,angular的$event,在select中卻是undefined?8. 利用IPMI遠(yuǎn)程安裝centos報(bào)錯(cuò)!9. javascript - 在 model里定義的 引用表模型時(shí),model為undefined。10. phpstudy8.1沒(méi)集成mysql-front

網(wǎng)公網(wǎng)安備