訂單表 order 表根據(jù)日期拆分 為 order_3 三個(gè)月內(nèi)表 order_this_year 今年內(nèi)表, order_2016年表 order_2015年表, 以此類推.把訂單拆分成小表 提高讀寫效率當(dāng)用戶選擇 2016年訂單 就直接到order_2016表查, 用戶選擇三個(gè)月就只到 order_3 表查數(shù)據(jù). 提高效率
現(xiàn)在問(wèn)題1order_this_year 今年內(nèi)表 如何設(shè)計(jì),
第一種設(shè)計(jì)思路 讓 order_this_year不包含 order_3 三個(gè)月表的數(shù)據(jù), 但會(huì)出現(xiàn)問(wèn)題, 當(dāng)用戶查詢 今年內(nèi)訂單時(shí), 需要跨兩個(gè)表查詢 order_this_year和 order_3 如果后臺(tái)涉及到統(tǒng)計(jì)今年內(nèi)的數(shù)據(jù)時(shí), 要跨表查詢兩張表數(shù)據(jù)如果涉及到 inner join 其他表后面又有 order by 等, 更加復(fù)雜
第二種設(shè)計(jì)思路 讓order_this_year包含 order_3表三個(gè)月的數(shù)據(jù), 如果用戶查詢今年內(nèi)數(shù)據(jù)時(shí)就只查詢order_this_year 通過(guò)冗余三個(gè)月數(shù)據(jù)來(lái)提高查詢效率.但引發(fā)的問(wèn)題是. order_3表的數(shù)據(jù) 發(fā)生更新變化時(shí) 要同時(shí)想更新 order_this_year表數(shù)據(jù), 比如用戶下單, 發(fā)貨, 訂單收貨, 訂單退貨, 訂單退款等等, 全站涉及到訂單更新時(shí) 都要再去order_this_year更新一遍.這導(dǎo)致更新數(shù)據(jù)時(shí)麻煩.
指導(dǎo)指導(dǎo)如何為 order_this_year設(shè)計(jì)一種思路, 既能解決查詢效率問(wèn)題, 又能解決數(shù)據(jù)及時(shí)問(wèn)題.
mysql 如何提高查詢速度.
呼啦一陣風(fēng)
2019-03-16 12:34:25