MySQL作為目前WEB開發(fā)中最常用的數(shù)據(jù)庫之一,其主要特性之一就是回表。所謂回表,就是當(dāng)MySQL查詢數(shù)據(jù)時(shí),如果需要獲取表中數(shù)據(jù)行的完整記錄(即需要查詢表中的多個(gè)字段),則MySQL需要在磁盤中多次訪問表的數(shù)據(jù),從而損失效率。
為了解決這個(gè)問題,MySQL提出了三大特性:
1.聚集索引: 在InnoDB中,表的數(shù)據(jù)存儲是按照主鍵的順序存儲的,這就是聚集索引。由于將數(shù)據(jù)按照主鍵進(jìn)行了排序,因此當(dāng)需要查詢表中多個(gè)字段時(shí),MySQL只需要訪問磁盤中的一次數(shù)據(jù)塊,就能夠直接得到所有需要的數(shù)據(jù)。 2.覆蓋索引: 如果我們在查詢時(shí)只需要返回表中的部分列,而這些列已經(jīng)在某個(gè)索引上,那么MySQL就可以直接從索引上查詢,并返回結(jié)果,而無需訪問數(shù)據(jù)塊。這種查詢方式就叫做覆蓋索引。 3.索引下推: 在MySQL 5.6以后,引入了索引下推這一特性,它的原理是在對索引進(jìn)行掃描的同時(shí),盡可能多的獲取必要的數(shù)據(jù),以減少回表操作的次數(shù)。這一特性對于包含大量WHERE條件和ORDER BY字句的查詢非常有效。
這三大特性在MySQL中的運(yùn)用使得數(shù)據(jù)的查詢變得更高效,從而提高了系統(tǒng)的響應(yīng)能力和使用效率。
上一篇css怎么把字放到照片上
下一篇css怎么把字放圖片右邊