mysql最多可以多少個(gè)字段?
答:1024個(gè)字段(一般可能沒(méi)這么多)
mysql每行的數(shù)據(jù)長(zhǎng)度最大是多少?
答:8092字節(jié)
mysql每個(gè)庫(kù)最多可以有多少個(gè)表?
答:20億個(gè)表
mysql的查詢速度會(huì)被字段數(shù)量影響嗎?有沒(méi)有簡(jiǎn)單點(diǎn)的優(yōu)化方案呢?
答:肯定會(huì)影響的的,不然就不會(huì)有垂直分表這一說(shuō)了
實(shí)際上垂直分表不僅僅是把字段按數(shù)量分開(kāi),還要按類型分開(kāi)
經(jīng)常被顯示的單獨(dú)一個(gè)表.比如cms新聞系統(tǒng)的標(biāo)題,摘要,所屬分類,縮略圖
這些字段不管是在首頁(yè)的列表還是分類頁(yè)的列表。是顯示頻率很高的奄喂。
并且這些字段的長(zhǎng)度都是有一定的規(guī)律的曼玩。
基本上不會(huì)太長(zhǎng)畏陕,所以單獨(dú)一個(gè)表横媚。
定長(zhǎng)和不定長(zhǎng)的字段盡可能的分開(kāi)考赛。比如文章的正文酥泛。
一般情況下在列表頁(yè)是不會(huì)顯示的今豆。所以就沒(méi)必要查詢嫌拣。
可以放到副表中去。
新聞系統(tǒng)的主表中呆躲,盡可能的只使用定長(zhǎng)字段异逐。比如int 或 char
如果只使用定長(zhǎng)字段 速度會(huì)有明顯的提升。
這是為什么呢插掂?
因?yàn)閙ysql的數(shù)據(jù)儲(chǔ)存在硬盤(pán)中灰瞻,
查詢的時(shí)候如果你告訴他每個(gè)數(shù)據(jù)的長(zhǎng)度,
那么系統(tǒng)就會(huì)直接按照長(zhǎng)度計(jì)算出數(shù)據(jù)的位置辅甥。所以快
如果其中有一列的數(shù)據(jù)長(zhǎng)度是未知的酝润。
系統(tǒng)只能一點(diǎn)點(diǎn)的去找。所以慢璃弄。