卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

java 隨機數(shù) 一道java面試題,20億數(shù)字的文本排序,如何取前100?

一道java面試題,20億數(shù)字的文本排序,如何取前100?因為這是一個Java問題,所以這是典型的TOPK問題。首先取前100個數(shù)字構建一個最小堆,然后依次從堆的頂部插入剩余的數(shù)字,同時調整堆。堆中最

一道java面試題,20億數(shù)字的文本排序,如何取前100?

因為這是一個Java問題,所以這是典型的TOPK問題。首先取前100個數(shù)字構建一個最小堆,然后依次從堆的頂部插入剩余的數(shù)字,同時調整堆。堆中最后100個元素就是結果。空間復雜度為k,時間復雜度為nlogk

在正常配置下,MySQL只能承載2000萬數(shù)據(jù)(同時讀寫,表中有大文本字段,單服務器)?,F(xiàn)在已經(jīng)超過1億,而且還在增加,建議按以下方式處理:

1子表。它可以按時間或一定的規(guī)則進行拆分,以便盡可能地查詢子表中的數(shù)據(jù)庫。這是最有效的方法。特別是寫,放入一個新表,并定期同步。如果記錄不斷更新,最好將寫入的數(shù)據(jù)放在redis中,并定期同步表3的大文本字段,將它們分隔成一個新的獨立表。對于較大的文本字段,可以使用NoSQL數(shù)據(jù)庫

4優(yōu)化體系結構,或者優(yōu)化SQL查詢,避免聯(lián)合表查詢,盡量不要使用count(*)、in、recursion等性能消耗語句

5使用內(nèi)存緩存,或者在前端讀取時增加緩存數(shù)據(jù)庫。重復讀取時,直接從緩存中讀取。

以上是一種低成本的管理方法,基本上幾個服務器就可以做到,但是管理起來有點麻煩。

當然,如果總體數(shù)據(jù)量特別大,并且您不關心投資成本,那么您可以在許多方面使用cluster或tidb。有個主意。首先,字符串從單個字符中分離出來,然后for循環(huán)匹配以確定它是字母還是數(shù)字。匹配時,可以使用正則表達式,也可以使用字母和數(shù)字的范圍來判斷。