記錄一下,個人理解。。。
數據表中數據太多的話,剛開始可以用索引之類的來優化。隨着業務多。。難免性能就下來了。 這時候就需要去思考,怎么處理,就想到了把數據源分開,把一張表分開成幾張表。。
首先如何判斷用不用判斷,以及分表后的后端,綜合考慮之后,直接開干。。
--exec sp_spaceused '表名' --查詢表所占空間

先分析下,一張表活動數據如果上百萬級別的話,就可以考慮分表了。。。
分表可以寫一個簡單的服務,或者開一個簡單的線程。。按照表名+月份 或者表名+年份來安排。。
以后查詢的時候,根據時間去查詢所對應的表。。。
月份表獲取表名例子:
private static List<string> GetTableIndex(DateTime? fromTime, DateTime? toTime, string tableName) { //獲取索引值 List<string> listTableName = new List<string>(); if (!fromTime.HasValue) { fromTime = DateTime.Parse(DateTime.Now.ToShortDateString()); } if (!toTime.HasValue) { toTime = fromTime; } DateTime dtDay1 = new DateTime(fromTime.Value.Year, fromTime.Value.Month, 1); DateTime dtDay = toTime.Value; while (dtDay >= dtDay1) { listTableName.Add(tableName + "_" + dtDay.ToString("yyyyMM")); dtDay = dtDay.AddMonths(-1); } return listTableName; }
對於ORM框架不太友好 需要專門去維護一下 或者寫SQL去查在轉成ORM對象。

