`
kingmxj
  • 浏览: 182411 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

分表查询

 
阅读更多
前提,数据库每天会新建一张表,由于数据量非常大,表的数据结构是一样的。

下面这个存储过程是返回一条SQL语句的。

我们传入的是两个时间,得到的是查询这段时间内的数据的一个SQL语句。

Create Procedure Search

@date1 datetime,  --起始时间

@date2 datetime   --终止时间

as

declare @date1New datetime,

             @rq  varchar(6),

             @i  int , --记录循环次数

             @s varchar(5000)  --根据表多少 可以扩大它

set @rq = convert(varchar,@date1,12)--把时间格式化,比如2008-06-20变成080620

--set @rq = select convert(varchar,@date1,12)是完全错误的,select的作用是显示,不是传值

set @s = 'select * from MainTable' + @rq  --初始化@s='select * from MainTable080620' 这样第一个表就有了

set @i = datediff(d,@date1,@date2)  --日期相减,按日计算

while @i > 0

begin

--如果是非常重要的系统可以在这里加上该物理表是否存在的语句

--以下是对于2000来讲,2008已经不存在于这个系统表里面了。其中IsUserTable是指表名。

--sql2000

--if   exist( select * from dbo.sysobjects where id = object_id(N'c')  and OBJECTPROPERTY(id,N'IsUserTable')=1)

--sql2008

--if exist( select * from dbo.sysobjects where name='IsUserTable')

--begin

--select '存在'

--end

--else

--begin

--select '不存在'

--end

set @date1New = dateadd(day,@i,@date1)

set @rq=convert(varchar,@date1New,12)

--如果是按月进行查询就修改上面,把d改成m

set @s = @s + 'union all select * from MainTable' + @rq

set @i = @i -1 --累加

end

select @s

end

例如:我们的表名叫作:MainTable+yymmdd,如MainTable100406,MainTable100407。。。

那么当我们传入2010-04-06和2010-04-08,那么这个存储成功执行之后的结果会是:

select * from MainTable100406

union all

select * from MainTable100407

这个存储过程在对会大数据量的时候,大系统利用分表来处理数据量的时候非常有用。
分享到:
评论

相关推荐

    Mysql分表查询,哈希,范围,列表

    【MySQL分表查询】在大型数据库系统中,随着数据量的不断增长,单表的数据规模可能会变得非常庞大,导致查询效率下降,系统性能受到影响。此时,分表技术就显得尤为重要。MySQL提供了多种分表策略,如哈希分表、范围...

    mysql 分库分表查询工具-shard.zip

    MySQL 分库分表查询工具——Shard 在大型的互联网应用中,数据库的性能瓶颈往往成为系统扩展性的关键因素。为了应对高并发、大数据量的挑战,MySQL 数据库的分库分表策略被广泛采用。分库是将数据分散到多个独立的...

    springboot+mybat(多数据源) 通过aop实现分库的操作 ,通过传入的动态表明实现分表查询

    本文将深入探讨如何利用SpringBoot的AOP(面向切面编程)特性,结合MyBatis的多数据源配置,实现动态表名的分库分表查询。 首先,我们需要理解SpringBoot的核心概念。SpringBoot是Spring框架的简化版本,它预设了...

    oracle 查询从分表取数据

    一个简单的oracle数据库环境下的存储过程,介绍了如何从带年月人的分表取数据

    TP5+MySQL通用分表代码

    - 分表情况,2:日期分表,按照目标表里面的记录日期的字段,按照日期【日、周、月、年】拆分成多个表【本代码仅考虑unix时间戳来分表,其它不支持,您可以自己思考,自己修改代码】 - 注意,支持【子表】,填入...

    Python与MySQL分表分库实战

    6. **性能监控**:实时监控数据库性能,如查询效率、并发量等,以便及时调整分库分表策略。 7. **扩展性**:分库分表设计应具备良好的扩展性,方便未来增加新的数据库或表。 8. **备份与恢复**:制定完善的数据库...

    如何使用SpEL表达式实现动态分表查询

    使用SpEL表达式实现动态分表查询 在实际工作中,数据量较大时,需要将数据按年份进行分表,表结构都是一致的。例如现在有两张表分别表示2017年和2018年数据表中只有id和name两个字段。为了解决这个问题,需要使用...

    java + spring boot +jpa 拦截器分库分表demo

    而当项目发展到一定规模,数据库的扩展性和性能优化就显得尤为重要,分库分表技术应运而生。本Demo主要展示了如何结合Java、Spring Boot以及JPA实现一个分库分表的解决方案。 首先,我们要理解什么是JPA(Java ...

    thinkPHP框架实现多表查询的方法

    本文实例讲述了thinkPHP框架实现多表查询的方法。分享给大家供大家参考,具体如下: 我们可以将两个表连起来一起查询数据,我现在有两张表,一个是feedback表和member表,如图: 总目录: 上代码: $where = ...

    以前自己写的一套mysql分库分表的查询代码,查询速度大概在1300-Mysql_Query_By_Aspect.zip

    这套代码是作者自编的用于MySQL数据库的分库分表查询工具,其查询速度达到了约1300次/秒,表明它在处理大量数据时具备一定的效率。 1. **分库分表原理**: - **分库**:将一个大的数据库拆分为多个小的数据库,以...

    MySQL数据库分表批量主键查询代理-mysql-partitions-proxy.zip

    总的来说,"mysql-partitions-proxy"是一个针对MySQL数据库分表查询的利器,能够帮助开发者高效地处理批量主键查询,提高系统整体的处理能力,减轻数据库的压力。在大数据时代,这样的工具对于优化数据库架构和提升...

    应对sharding-jdbc结合mybatis实现分库分表功能 分表的联合查询采用将mysql的数据同步到elasticsearch进行筛选

    4. **联合查询**:在分库分表后,传统的跨表查询会变得复杂。为了解决这个问题,标题中提到的“分表的联合查询”可以通过异构数据源的方式来实现。例如,将MySQL中的数据同步到Elasticsearch,利用Elasticsearch强大...

    MyBatis实现Mysql数据库分库分表操作和总结(推荐)

    MyBatis实现Mysql数据库分库分表操作和总结 MyBatis是一款流行的持久层框架,能够与Mysql数据库进行交互。在大规模的应用系统中,数据库的性能和可扩展性变得非常重要。为了解决这个问题,需要实现数据库的分库分表...

    hibernate动态分表

    【hibernate动态分表】是一种数据库设计策略,主要用于处理大数据量的问题,通过将数据分散到多个物理表中,以实现水平扩展,提高查询效率,减轻单表的压力。在Java Web开发中,Hibernate作为一款流行的ORM(对象...

    C# Sqlite分页查询,日期查询

    本话题将深入探讨如何在C#中利用SQLite进行分页查询以及日期查询。 首先,要与SQLite数据库进行交互,我们需要引入一个SQLite的.NET驱动。`System.Data.SQLite`是一个广泛使用的开源库,可以在NuGet包管理器中找到...

    MSSQLServer数据库大量数据按月份分表、存储过程指定时间段跨表分页查询

    资源里包含SQL文档:创建数据库和存储过程.sql 生成数据.sql 测试.sql 比较完善的大量数据分表功能代码,包含...数据按照每个月创建一个数据表,通过存储过程输入参数,按照指定日期跨表查询数据,并且可以分页查询。

    msyql分表sql,导入即可

    MySQL数据库在处理大数据量时,为了提高查询性能和负载均衡,常常采用分表(Sharding)策略。这里的“msyql分表sql,导入即可”指的是利用特定的SQL语句来实现MySQL数据库的分表操作,并且这些SQL脚本可以直接导入到...

    Python+MySQL分表分库实战

    同时,本教程还将指导读者如何进行数据迁移和查询操作,确保在分表分库后依然能够高效地对数据进行管理。 在分表分库的实战过程中,我们将遇到一些挑战,例如单库分表迁移数据的难题,以及多实例INSERT操作的困扰。...

Global site tag (gtag.js) - Google Analytics