数据库数据量过大处理——分表

记录一下,个人理解。。。

数据表中数据太多的话,刚开始可以用索引之类的来优化。随着业务多。。难免性能就下来了。 这时候就需要去思考,怎么处理,就想到了把数据源分开,把一张表分开成几张表。。

首先如何判断用不用判断,以及分表后的后端,综合考虑之后,直接开干。。

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

原文地址:https://www.cnblogs.com/cr-cool/p/12976994.html