鍍金池/ 問答/Java  PHP  C  數(shù)據(jù)庫/ mysql千萬級數(shù)據(jù)查詢問題

mysql千萬級數(shù)據(jù)查詢問題

日志存在mysql里面,現(xiàn)在的問題是,默認日志頁為當(dāng)天的日志信息,現(xiàn)在測試發(fā)現(xiàn)的問題是,如果日志數(shù)量達到千萬級的時候,一開始的頁面就非常卡,這個是開始頁面的查詢語句;這里面為了達到數(shù)據(jù)量很大的目的,時間才改為1410243201

clipboard.png

另外這個頁面里面有搜索功能,千萬級的數(shù)據(jù)一搜索就更卡,搜索語句都會有addtime?,F(xiàn)在問題內(nèi)存使用量很大,搜索也很慢。一開始sql where里面的條件字段都已經(jīng)加上了索引,為全文索引的字段使用了like

clipboard.png
求大神告知解決方案?。。。?/p>

回答
編輯回答
淚染裳
  1. between and 索引失效

2、like也可以用索引,like "字段%" 該字段加了索引且是后% explain type =range
3、全文索引 考慮使用第三方 coreseek 對中文支持也好
4、考慮分區(qū) 根據(jù)range 分區(qū)

2017年1月25日 14:36
編輯回答
別傷我

Partition或者分表。前者DBA維護壓力大一點。

2018年7月30日 09:36
編輯回答
北城荒

做個分頁吧,一次性查1千萬的數(shù)據(jù)再怎么優(yōu)化也很費時間

2017年11月11日 02:55
編輯回答
刮刮樂

分表吧,按照日期進行分表。這樣查詢的數(shù)據(jù)量會小一點。還有就是分頁。不可能一次性取出來那么多數(shù)據(jù)給別人看吧。樓上哥們有人提議文件存儲,我覺得這個也是可以的。

2017年1月10日 06:45
編輯回答
不舍棄

分表并且分頁

2017年7月25日 17:03
編輯回答
離殤

可以用時間區(qū)間查詢,每次查詢帶一個時間區(qū)間,還有,該加索引的地方,加上索引。

2017年7月5日 22:47
編輯回答
胭脂淚

可以考慮將當(dāng)天日志頁面靜態(tài)化,然后定期更新,將最新的記錄,追加上來。數(shù)據(jù)庫優(yōu)化參考

2018年9月9日 02:37
編輯回答
吢丕

可以考慮把日志分開存儲,把當(dāng)天的日志單獨建一個表存儲,一天一個表,減少數(shù)據(jù)量

2017年11月22日 14:50
編輯回答
鹿惑

在數(shù)據(jù)庫方面,我這一般除了優(yōu)化好語句之外,都是使用分布式的,不過才千萬級好像有點大材小用了.

2018年2月15日 04:06
編輯回答
骨殘心

我是這樣想的,日志的話肯定會越來越大的。如果你堅持使用mysql的話,日后的表會越來越大,查詢的時候如果查詢的跨度太大就是全表掃描,你可以把日志按照每個月分表,然后這樣查詢的時候加上索引還是可以的。當(dāng)然我推薦文件存儲日志

2017年9月1日 12:38