MySQL InnoDB 表數(shù)據(jù)頁或者二級索引頁(簡稱數(shù)據(jù)頁或者索引頁)的合并與分裂對 InnoDB 表整體性能影響很大;數(shù)據(jù)頁的這類操作越多,對 InnoDB 表數(shù)據(jù)寫入的影響越大。
為新吳等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及新吳網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為做網(wǎng)站、網(wǎng)站設計、新吳網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
MySQL 提供了一個數(shù)據(jù)頁合并臨界值(MERGE_THRESHOLD),在某些場景下,可以人為介入,減少數(shù)據(jù)頁的合并與分裂。
在 InnoDB 表里,每個數(shù)據(jù)頁默認16K 大小,默認 MERGE_THRESHOLD 值為 50,取值范圍從 1 到 50,默認值即是最大值。也就是當頁面記錄數(shù)占比小于 50% 時,MySQL 會把這頁和相鄰的頁面進行合并,保證數(shù)據(jù)頁的緊湊,避免太多浪費。
先在表2中加一個臨時字段(標志重復的),然后將重復的賬號設置一下標志,這樣合并時就可以按照重復標志字段作為條件。
直接先用union all合并所有的表,再包一層select語句,將合并表作為子表查詢,加where條件即可,如果記錄重復,可以加distinct關鍵字去重。
select?表1.學號,表1.姓名,表1.性別,表2.科目1評語,表3.科目2評語
from?表1
left?join?表2?on?表1.學號=表2.學號
left?join?表3?on?表1.學號=表3.學號