兩個(gè)數(shù)據(jù)庫如何比對相同的信息 為什么MySQL在數(shù)據(jù)庫較大的時(shí)候分頁查詢很慢,如何優(yōu)化?
為什么MySQL在數(shù)據(jù)庫較大的時(shí)候分頁查詢很慢,如何優(yōu)化?個(gè)人實(shí)踐經(jīng)驗(yàn)分享一下,商品清單,數(shù)據(jù)量還是比較大的,有幾百萬。當(dāng)時(shí)最初的架構(gòu)也遇到了這種問題,因?yàn)樽畛醯脑O(shè)計(jì)沒有預(yù)料到這么大的數(shù)據(jù)量,所以要處
為什么MySQL在數(shù)據(jù)庫較大的時(shí)候分頁查詢很慢,如何優(yōu)化?
個(gè)人實(shí)踐經(jīng)驗(yàn)分享一下,商品清單,數(shù)據(jù)量還是比較大的,有幾百萬。當(dāng)時(shí)最初的架構(gòu)也遇到了這種問題,因?yàn)樽畛醯脑O(shè)計(jì)沒有預(yù)料到這么大的數(shù)據(jù)量,所以要處理10萬以內(nèi)的架構(gòu)設(shè)計(jì)。后來通過不斷尋找解決方案,最終采用了橋接表方案。主表是商品表,有幾百萬或者幾千萬的商品。
第一步,建立橋接數(shù)據(jù)表,一個(gè)自增ID,一個(gè)商品ID,主要的兩個(gè)字段,還可以添加額外的排序條件,都是int類型,不能太大。該表用于存儲(chǔ)產(chǎn)品ID。
第二步,查詢分頁的時(shí)候,先在這個(gè)橋表上做分頁查詢,這個(gè)橋表很小,充滿了索引,速度很快。然后,在取出商品ID后,用已知的商品ID在商品表上進(jìn)行查詢。了解具體信息。這個(gè)速度大大提高。簡單實(shí)用,只需查詢修改分頁部分即可完成。
目前三到五百萬的商品列表都是毫秒級(jí)的查詢,轉(zhuǎn)化前需要半分鐘。
讓 讓我們來談?wù)凪ySQL數(shù)據(jù)庫。有人說它 沒有必要?jiǎng)澐直砗蛿?shù)據(jù)庫。It 使用in條件進(jìn)行查詢是最快的。告訴我它在哪里,然后拿到數(shù)據(jù)。