欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql千萬(wàn)級(jí)數(shù)據(jù)大表該如何優(yōu)化?

 更新時(shí)間:2011年08月06日 23:12:55   作者:  
如何設(shè)計(jì)或優(yōu)化千萬(wàn)級(jí)別的大表?此外無(wú)其他信息,個(gè)人覺(jué)得這個(gè)話題有點(diǎn)范,就只好簡(jiǎn)單說(shuō)下該如何做,對(duì)于一個(gè)存儲(chǔ)設(shè)計(jì),必須考慮業(yè)務(wù)特點(diǎn),收集的信息如下
1.數(shù)據(jù)的容量:1-3年內(nèi)會(huì)大概多少條數(shù)據(jù),每條數(shù)據(jù)大概多少字節(jié);

2.數(shù)據(jù)項(xiàng):是否有大字段,那些字段的值是否經(jīng)常被更新;
3.數(shù)據(jù)查詢SQL條件:哪些數(shù)據(jù)項(xiàng)的列名稱經(jīng)常出現(xiàn)在WHERE、GROUP BY、ORDER BY子句中等;
4.數(shù)據(jù)更新類SQL條件:有多少列經(jīng)常出現(xiàn)UPDATE或DELETE 的WHERE子句中;
5.SQL量的統(tǒng)計(jì)比,如:SELECT:UPDATE+DELETE:INSERT=多少?

6.預(yù)計(jì)大表及相關(guān)聯(lián)的SQL,每天總的執(zhí)行量在何數(shù)量級(jí)?
7.表中的數(shù)據(jù):更新為主的業(yè)務(wù) 還是 查詢?yōu)橹鞯臉I(yè)務(wù)
8.打算采用什么數(shù)據(jù)庫(kù)物理服務(wù)器,以及數(shù)據(jù)庫(kù)服務(wù)器架構(gòu)?
9.并發(fā)如何?
10.存儲(chǔ)引擎選擇InnoDB還是MyISAM?

大致明白以上10個(gè)問(wèn)題,至于如何設(shè)計(jì)此類的大表,應(yīng)該什么都清楚了!

至于優(yōu)化若是指創(chuàng)建好的表,不能變動(dòng)表結(jié)構(gòu)的話,那建議InnoDB引擎,多利用點(diǎn)內(nèi)存,減輕磁盤(pán)IO負(fù)載,因?yàn)镮O往往是數(shù)據(jù)庫(kù)服務(wù)器的瓶頸

另外對(duì)優(yōu)化索引結(jié)構(gòu)去解決性能問(wèn)題的話,建議優(yōu)先考慮修改類SQL語(yǔ)句,使他們更快些,不得已只靠索引組織結(jié)構(gòu)的方式,當(dāng)然此話前提是,
索引已經(jīng)創(chuàng)建的非常好,若是讀為主,可以考慮打開(kāi)query_cache,

以及調(diào)整一些參數(shù)值:sort_buffer_size,read_buffer_size,read_rnd_buffer_size,join_buffer_size

其他人建議:

1. 索引, 避免掃描,基于主鍵的查找,上億數(shù)據(jù)也是很快的;
2. 反范式化設(shè)計(jì),以空間換時(shí)間,避免join,有些join操作可以在用代碼實(shí)現(xiàn),沒(méi)必要用數(shù)據(jù)庫(kù)來(lái)實(shí)現(xiàn);

相關(guān)文章

最新評(píng)論