數據庫數據量過大處理——分表


記錄一下,個人理解。。。

數據表中數據太多的話,剛開始可以用索引之類的來優化。隨着業務多。。難免性能就下來了。 這時候就需要去思考,怎么處理,就想到了把數據源分開,把一張表分開成幾張表。。

首先如何判斷用不用判斷,以及分表后的后端,綜合考慮之后,直接開干。。

--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對象。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM