sql分表传输,以及创建表格? 5C

1数据表A{x1,x2,x3,x4,x5},整张表的大小未知,但是由于带宽限制必须要将表格拆分为小于10M的一份份表格进行传输。如何对整张表格进行切分并检查最后输出的数据完整与准确。

  1. 数据表B{用户,商店, 金额,消费日期},我们定义商户与商户如果同一天会发生消费的则认为两个商户的位置相近,如何构建一张{商户1,商户2}的表格,其中任一相近位置的商户都能在某一行数据中被找到
sql
0

3个回答

两个问题都有点描述不清楚了。尝试着回答:

1、是不是想做网络一般情况下的数据库远程汇总。其实这样都可以不用写代码,使用商用异地备份软件即可。
当然预算有限硬要自己做时都可以不用集中汇总,可以在Modify每条记录时,生成相应的数据包TCP给远程即可。如担心影响本地速度,可以将这个事情交给独立进程完成。
集中汇总时,先select再生成汇总数据包,发给远程也可以了。
通过TCP的应答即可知道是否成功了。远程使用事务,要么全部成功并发回了应答,要么全部回滚即可。

2、不知“相近位置”这个定义,是指通常的物理位置靠近,还是你们定义的逻辑相近了?看你的问题,像是后者了。
如是后者很简单,insert B表时,同时select B表,看有否相近的商户,如有则 select并insert“ 相近位置表”即可了。

2

你这个是两个实际问题,应该分开给你解答比较好。
先来第一个吧,第一个单纯看问题应该不难解决,方案比较多,但是我想实际情况和问题难点并不在于分表和带宽限制,希望能更多详尽的描述一下。

0
ai_zxc
咋个办呢 回复csdncooker: SQL2(MySQL):select group_concat(B.商店) from B group by B.用户 , B.消费日期
大约一年之前 回复
ai_zxc
咋个办呢 回复csdncooker: SQL1:select 商铺 from B where B.用户=用户 and B.消费日期=消费日期;
大约一年之前 回复
ai_zxc
咋个办呢 回复ai_zxc: 第二个问题,这个让我怎么回答呢,如果单纯按着你的字面意思,你可以参考如下SQL了。
大约一年之前 回复
ai_zxc
咋个办呢 回复csdncooker: 回复csdncooker: 好吧,就针对你描述的情况我来回复一下处理。1、解决10M数据传输和数据准确性。假设A表在读取数据的时候已经停止有任何的DML操作,那么可以开启一次性读取全表的动作(中间使用小事务处理的方式比如2000条一个事务),将读取的数据序列化后直接写入文件一直到全部写完(注意对事务失败回滚的处理),处理完成后gz压缩(zip等都可以),分割10M一个文件加密压缩,同时计算原始数据文件的MD5和分割压缩文件每一个的MD5(MD5用于接收端对压缩文件校验和解压缩后的校验)。数据文件压缩后体量会非常小的。
大约一年之前 回复
csdncooker
csdncooker 这就是详尽的问题描述了,第一个我一点头绪没有。先来第二个怎么样
一年多之前 回复

第一个问题:
实测一下 多少条数据(字段充满的情况下)达到10M的数据量, 10000条还是20000条,测出来之后,每次查询限制行数就好了!为了保险,可以将传输的记录数减少到80%;

第二个问题:
A与B相近,B与C相近,但是 A不一定与C相近。模拟一下,一个人从天安门出发,步行走到海南,在路过的每个商家都买东西,天安门和海南肯定不相近。
所有表里,只能存 某两个商家之间的关系, {商家1,商家2, 交易人次}, 加上一个权重,同一天内,同一个人在 商家1 和 商家2 产生交易的笔数(或者其它类似的权重值)
最后根据实际情况,权重低的舍弃(可能是坐飞机跨省之类),高的保留。

你说的把所有相近的商家都存到一行,不太符合 从 天安门 到 海南的逻辑!

0
besthuman
besthuman 位置是相对的,只能先确定一个商家,才能找哪些商家和这个商家相近。 不能拿一堆商家出来说这一堆商家相近,10000个商家可能很密集,一家挨着一家,但是第一家和第10000家不相近
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
MySQL语句执行优化及分页查询优化,分库分表(一)
下面是关于在使用SQL时,我们尽量应该遵守的规则,这样可以避免写出执行效率低的SQL 1、当只需要一条数据时,使用limit 1      在我们执行查询时,如果添加了 Limit 1,那么在查询的时候,在筛选到一条数据时就会停止继续查询,但是如果没有添加limit 1即使只有一条数据,也会尝试去查询下一条满足条件的数据。 2、对于搜索的字段创建索引     如果当前数据量很大的情况下,需...
SQL SERVER 如何按月创建表分区?
SQL SERVER 如何按月创建表分区
js创建table表格
js创建table表格,有下拉框,输入框,真实可用,适合使用,学习
大数据分表,SQL千万级分表
SQL,大数据分表,SQL千万级分表,删除百万数据
MSSQLServer数据库大量数据按月份分表、存储过程指定时间段跨表分页查询
比较完善的大量数据分表功能代码,包含创建数据库、生成数据、测试结果。适合初学分表者使用。 数据按照每个月创建一个数据表,通过存储过程输入参数,按照指定日期跨表查询数据,并且可以分页查询。 有如下表: table_20180101table_20180201 table_20180301table_20180401 CREATE TABLE [dbo].[table_20180101](
分库分表自动建库表小工具
功能: 通过配置文件以及sql模板文件自动生成 分库分表,单库分表的sql脚本 最新更新: 1、支持分库不分表的脚本生成 2、修正重复索引报错问题
分表SQL
以下代码是,根据新建的一张表的sql语句,程序跑出多个的分表sql语句,仅供参考 /**  * @author liusn19096  *   */ public class SeparateTableSql {     /**      * 文件编码      */     private static final String ENCODE = "GBK";
MySQL数据库如何创建表格以及增删改查
对表格结构的修改 -- 创建表 (创建user表) CREATE TABLE `user` ( `id`  int NOT NULL AUTO_INCREMENT , `name`  varchar(10) COLLATE utf8_general_ci NOT NULL , `age`  decimal(6,3) NULL , `img`  blob NULL ,  PRIMA
创建表格(用SQL的脚本语言)
以图书管理为例      USE Book;    //表示使用Book数据库,即在Book数据库中创建表格     CREATE TABLE booksss(       NUM INT,      //列名 +数据类型       NAMED VARCHAR(20),   //字符类型需要添加数据长度       PRICE DOUBLE,       COUNTS DOUBLE,      ...
数据库SQL分表存储步骤与方法
对数据库ChinaGas 中历史表t_base_History进行数据分表存储,按字段CollectDate不同的时间进行存储,建立数据库分组CGdbSF1~CGdbSF7,分组文件如CGdbSF1.ndf,建立分区函数CG_function,分区方案CG_scheme
分库分表创建sql
use DBName; -- existsSQL 检查当前表是否存在 -- createTableSQL 创建表的sql -- set @dbCount=5;--数据库数量 -- set @recordStep=100000000;--自增id初始值 -- set @tbCountPerDb=100;--每个库中表的数量 -- set @tbNamePrefix='tbFile';-- 创建tba...
SQL Server数据库分区分表(水平)
1         需求说明 将数据库Demo中的表按照日期字段进行水平分区分表。要求数据文件按一年一个文件存储,且分区的分割点会根据时间的增长自动添加(例如现在是2017年1月1日,将其作为一个分割点,即将2017年1月1日之前的数据存储到数据文件A中,将2017年1月1日的之后的数据存储到数据文件B中;当时间到2018年1月1日时,自动将2018年1月1日添加为一个新的分区分割点,并将201
MySQL分表及分表后插入sql
MySQL分表及分表后插入sql语句,表为订单表,可以参考一下
SQL Server数据库分区分表
当一个数据表的数据量达到千万级别以后,每次查询都需要消耗大量的时间,所以当表数据量达到一定量级后我们需要对数据表水平切割。水平分区分表就是把逻辑上的一个表,在物理上按照你指定的规则分放到不同的文件里,把一个大的数据文件拆分为多个小文件,还可以把这些小文件放在不同的磁盘下。这样把一个大的文件拆分成多个小文件,便于我们对数据的管理。 下面我们来创建表分区 代码创建分区表 添加文件组 代码格式:...
分表查询
前提,数据库每天会新建一张表,由于数据量非常大,表的数据结构是一样的。 下面这个存储过程是返回一条SQL语句的。 我们传入的是两个时间,得到的是查询这段时间内的数据的一个SQL语句。 Create Procedure Search @date1 datetime, --起始时间 @date2 datetime --终止时间 as declare @...
mysql如何查询多样同样的表/sql分表查询、java项目日志表分表的开发思路/按月分表
之前开发了一个监控系统,数据库的日志表是单表,,虽然现在数据还不大并且做了查询sql优化,不过以后数据库的日志表数据肯定会越来越庞大,将会导致查询缓慢,所以把日志表改成分表,日志表可以按时间做水平分表,我是按月分的,每个月一张表,这时候的问题是 1. 数据库有多张同样的分表如何根据条件查询? 2. 在进行分页的时候如何计算总记录数?如何查询出所有分表? 3. 每个月的新表是如何创建?系统如何自动创建? 4. 不确定哪个分表的情况如何查询某一条详细记录? 分表查询用union或者union或者uni
mysql批量建表
利用mysql存储函数,方便快捷批量建立mysql数据库测试表
Mysql分表查询的简单实现
第一种:Mysql MERGE引擎分表 第二种:union 第三种:select t1.*,t2.*,t3.* from t1,t2,t3 where t1.user_id =? and t2.user_id =? and t3.user_id=?;
SQL 千万级大数据,按年份分表并删除原表数据
SQL 千万级大数据,按年份分表并删除原表数据
mysql 水平分表技术
mysql 水平分表技术   这里做的是我的一个笔记。 水平分表比较简单, 理解就是: 合并的表使用的必须是MyISAM引擎 表的结构必须一致,包括索引、字段类型、引擎和字符集  数据表 user1 1 2 3 4 5 6 CREATE TABLE `user1` (   `id` int(11) NO...
msql用分表优化2亿数据查询速度
msql用分表优化2亿数据查询速度
全国省市县三级数据库,内含sql server(三个分表2008r2)和access(一个总表)两个数据库和access数据库导入sql sever的方法以及整表分成三个分表的sql执行代码
全国省市县三级数据库 内含sql server(三个分表2008r2)和access(一个总表)两个数据库和access数据库导入sql sever的方法以及整表分成三个分表的sql执行代码
循环创建多张表 和 多个数据库sql语句(数据库水平分库分表时方便)
关键字:循环创建多张表 和 多个数据库sql语句(数据库水平分库分表时方便) 提示:创建库或表时可以用存储过程 删除库或表时也可以用存储过程 方便又省时 ---------------------------------创建所有数据库------------------------------------------- 调用:call create_databases('znke...
mysql 分表
关于mysql的分表技术实现方法。以及分表设计, 及简单的代码实例。
Mycat快速入门(二): Mycat分库分表案例
一:数据库准备 CREATE DATABASE `db1` DEFAULT CHARACTER SET utf8mb4; CREATE DATABASE `db2` DEFAULT CHARACTER SET utf8mb4; CREATE DATABASE `db3` DEFAULT CHARACTER SET utf8mb4; 二:Mycat配置 mycat/conf/server.xml...
水平分表
概述 当一个表的数据很大,比如200G,这时太大,我们只靠索引也不好使了,这时我们需要分表和分区处理。分表有两种形式(水平分表和垂直分表)。 一、水平分表   核心思想:把一个大表,分割N个小表,小表和大表结构一样,只是把数据分散到不同的表中。 简单例子:比如说是通过ID直接登录(例如QQ号),可以直接使用下面的例子 每次登录验证的时候只要把传过来的Id...
php程序创建主表下的分表
mysql主表下分10个分表,每次插入分表数据,自动会增加主表数据sql语句
MySQL 主从同步延迟的原因及解决方法
MySQL 主从同步延迟的原因及解决方法 Mysql主从基本原理,主要形式以及主从同步延迟原理 (读写分离)导致主库从库数据不一致问题的及解决方案 一、主从数据库的区别 从数据库(Slave)是主数据库的备份,当主数据库(Master)变化时从数据库要更新,这些数据库软件可以设计更新周期。这是提高信息安全的手段。主从数据库服务器不在一个地理位置上,当发生意外时数据库可以保...
mysql分库分区分表
1.分库分区分表概念分区    就是把一张表的数据分成N个区块,在逻辑上看最终只是一张表,但底层是由N个物理区块组成的分表    就是把一张数据量很大的表按一定的规则分解成N个具有独立存储空间的实体表。系统读写时需要根据定义好的规则得到对应的字表明,然后操作它。表名可以按照某种业务hash进行映射。分库    一旦分表,一个库中的表会越来越多2.实现    2.1分区的实现方式(简单)    my...
SQL策略分库分表
分表技术 对于一个表中的数据量非常庞大,我们可以采用分表技术,来减少表的大小,在进行查询的时候能提高效率。分表方式:水平分割、垂直分割 水平分割 A)表的结构不会发生变化 B)根据一些标准或者说是根据模型的某个字段进行相关的运算或者经过一些算法处 理得到一个表号,然后插入到所对应的表中。或者在对应的表中进行查询。根据实际需要也 可以留总表,方便其他处理。 如...
历史数据按月分表脚本
 declare @start_time datetime= '2017-03-12';        --开始时间(根据需要输入)   declare @end_time   datetime= '2017-05-31';        --结束时间(根据需要输入)   declare @source_table_name varchar(100)='ods.s_dc_data';    --要...
分表分库联查语句
如何进行数据的分表分库关联查询
定时生成分月表sql语句
1.必须有一张基础表:t_record_yymm 2. 写定时脚本 每月的月底用定时任务执行SQL语句 create table t_record_1811 like t_record_yymm
数据库分表和分区
概念 分表:分表就是将一张表分成N张小表, 分区:就是将一张表的数据分成N个区块,这些区块可以放在一个磁盘上.一张表主要对应三个文件: frm:存放表结构 myd:存放表数据 myi:存放索引的 如果一张表数据量太大了的话,那么myd 和 myi 就会变的很大,那么我们在查询数据的时候就...
Mycat 源码修改-实现分表规则:按天分表和取摸分表查询
Mycat 源码修改-实现分表规则:按天和取摸功能。之前修改过源码,发现其实没什么高深的只需要自己耐心点,多花点时间去调试就可以做到了。通过调试,找到自己想要改的地方,这是关键的:在代码中表现为修改相应的配置规则、相关的路由直达问题。按天分表的在我的前一篇博客中有讲述,只是这里的规则改了下,所以不再主讲按天分表。这里重点讲的是取摸分表查询。
数据库分库分表-水平分表笔记
分表笔记    作者Q:359559774  一起探讨 场景,主表与从表进行关联,主表数据较小,百万内,从表较大 分表方式:userId%从表分表总数 求余得到所在分表,主表不切分,从表切分 (例如从表按照主表userId进行切分) 结合业务逻辑和表间关系,将当前shard划分成多个更小的shard,通常情况下,这些更小的shard每一个都只包含一个主表(将以该表ID进行散列的表)和多个与其
SSM搭建分库分表源码(可直接运行带数据库脚本)
SSM搭建分库分表源码(可直接运行带数据库脚本) ssm spring mybaties 分库 分表 SSM搭建分库分表源码(可直接运行带数据库脚本) ssm spring mybaties 分库 分表 SSM搭建分库分表源码(可直接运行带数据库脚本) ssm spring mybaties 分库 分表
分表查询数据
表名:TABLE_NAME_[00_30]_[00_30]查询上表的所有表里数据大于0的表名和条数:select table_name,table_rows from INFORMATION_SCHEMA.tables WHERE table_name LIKE 'TABLE_NAME_%' AND table_rows > 0...
MySQL数据库分库分表脚本实现
目录 1 MySQL分库脚本实现 2 MySQL分表脚本实现 1 MySQL分库脚本实现 vim /server/scripts/mysqldump.sh #!/bin/bash USER=root PASSWORD=123456 SOCKET=/data/3306/mysql.sock LOGIN="mysql -u$USER -p$PASSWORD -S $SOCKET...
水平分表与垂直分表
水平分表: 根据主要查询条件需拆分,列入一般我们查询的时候都是去用id去查 1、 我们先来解决多张表使用唯一的自增id,我 目前看文章看懂的是 可以单独建立一张去记录MaxId , 也可以用函数去做,但是我没太明白所以就不讲了, 2、 根据id来判断扔哪张表, 加入有5张,我们来取模 用户id%5 =存在哪张表内, 计算这种的公式也有很多...