docker常用命令 mysql中,分表查詢(xún)和索引查詢(xún)哪個(gè)更快?
mysql中,分表查詢(xún)和索引查詢(xún)哪個(gè)更快?例如,在mysql中,哪種方式更快?為什么要在MySQL中創(chuàng)建多個(gè)表?這是因?yàn)楫?dāng)存儲(chǔ)大量數(shù)據(jù)時(shí),可以通過(guò)建立多個(gè)表來(lái)均勻分布數(shù)據(jù),每個(gè)表對(duì)應(yīng)一個(gè)數(shù)據(jù)項(xiàng),在查詢(xún)
mysql中,分表查詢(xún)和索引查詢(xún)哪個(gè)更快?
例如,在mysql中,哪種方式更快?
為什么要在MySQL中創(chuàng)建多個(gè)表?
這是因?yàn)楫?dāng)存儲(chǔ)大量數(shù)據(jù)時(shí),可以通過(guò)建立多個(gè)表來(lái)均勻分布數(shù)據(jù),每個(gè)表對(duì)應(yīng)一個(gè)數(shù)據(jù)項(xiàng),在查詢(xún)或調(diào)用時(shí)可以方便地訪問(wèn)。如果沒(méi)有子表,那么所有的數(shù)據(jù)都可能存在于一個(gè)表中,這會(huì)增加數(shù)據(jù)庫(kù)在寫(xiě)入或查詢(xún)時(shí)的負(fù)擔(dān),延長(zhǎng)查詢(xún)時(shí)間,增加磁盤(pán)的IO,因?yàn)閷?duì)于大量的數(shù)據(jù)存儲(chǔ),最好建立不同類(lèi)型的表,它可以更方便,更快地寫(xiě)入和檢索。
為了更快地定位目標(biāo)數(shù)據(jù),必須在子表查詢(xún)和單表查詢(xún)中引入索引。
為什么MySQL在數(shù)據(jù)庫(kù)較大的時(shí)候分頁(yè)查詢(xún)很慢,如何優(yōu)化?
正如房東所說(shuō),分頁(yè)查詢(xún)?cè)谖覀兊膶?shí)際應(yīng)用中非常常見(jiàn),也是問(wèn)題最多的查詢(xún)場(chǎng)景。例如,對(duì)于下面的簡(jiǎn)單語(yǔ)句,通常的思考方式是在name、age、register中u在time字段上創(chuàng)建一個(gè)復(fù)合索引。這樣,條件排序可以有效地利用索引,性能得到快速提高。
如上例所示,當(dāng)limit子句變?yōu)椤發(fā)imit 100000,50”時(shí),我們會(huì)發(fā)現(xiàn),如果只選擇了50條語(yǔ)句,為什么會(huì)變慢?
,所以我們會(huì)覺(jué)得很慢。
通常,在分頁(yè)查詢(xún)時(shí),可以在上一頁(yè)中獲取數(shù)據(jù)標(biāo)志,以縮小查詢(xún)范圍,如時(shí)間。我們可以將上一頁(yè)的最長(zhǎng)時(shí)間作為查詢(xún)條件的一部分。SQL可以?xún)?yōu)化如下: