`
lbyzx123
  • 浏览: 478069 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

MySQL将非分区表转化为分区表

 
阅读更多
1、备份数据到alarminfo_old
insert into alarminfo_old(deviceid,type,status,message,alarmtime,planid,alertnum,confirm_userid,confirm_username,confirm_useralias,confirm_time,confirm_message) 
select deviceid,type,status,message,alarmtime,planid,alertnum,confirm_userid,confirm_username,confirm_useralias,confirm_time,confirm_message from alarminfo;
2、删除alarminfo
drop table alarminfo;
3、创建带有分区的alarminfo
CREATE TABLE `alarminfo` (
`id`  bigint(20) NOT NULL AUTO_INCREMENT,
`deviceid`  varchar(32) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL ,
`type`  tinyint(4) NOT NULL DEFAULT 0 ,
`status`  tinyint(4) NULL DEFAULT 0 COMMENT '报警状态,1产生;2消失' ,
`message`  varchar(1024) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '处理意见' ,
`alarmtime`  bigint(20) NULL DEFAULT 0 ,
`planid`  int(11) NULL DEFAULT 0 ,
`alertnum`  tinyint(4) NULL DEFAULT 0 COMMENT '报警通道号' ,
`confirm_userid`  int(11) NULL DEFAULT 0 ,
`confirm_username`  varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL ,
`confirm_useralias`  varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL ,
`confirm_time`  bigint(20) NULL DEFAULT NULL ,
`confirm_message`  varchar(1024) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL ,
PRIMARY KEY (`id`, `type`)
) PARTITION BY LIST(type) (
PARTITION p1 VALUES IN (1),
PARTITION p2 VALUES IN (2),
PARTITION p3 VALUES IN (6,100,101)
);
4、拷贝数据
create procedure cp_data()
begin
declare i int; 
set i=0;
   while i<60 do
     insert into alarminfo(deviceid,type,status,message,alarmtime,planid,alertnum,confirm_userid,confirm_username,confirm_useralias,confirm_time,confirm_message) select deviceid,type,status,message,alarmtime,planid,alertnum,confirm_userid,confirm_username,confirm_useralias,confirm_time,confirm_message from alarminfo_old where id >= i*10000 and  id <(i+1)*10000;
     set i=i+1;
     select sleep(2);
     end while;
end
5、删除备份表
drop table alarminfo_old;




 

 

mysql 分表,拆分策略都有哪些?各在什么情况下应用?

 

http://www.dewen.org/q/696

分享到:
评论

相关推荐

    Oracle的表结构转成Mysql的表结构

    本文介绍了一种将Oracle数据库中的表结构转换为MySQL数据库表结构的方法。通过编写一个PL/SQL函数`fnc_table_to_mysql`来实现这一目标。该函数可以接受四个参数,并生成对应的MySQL创建表语句(DDL)。 #### 参数...

    Mysql建表语句转化为postgre语句

    - MySQL支持分区表,PostgreSQL也有类似的功能,但实现方式不同。 在实际转换过程中,可以使用自动化工具或手动修改SQL脚本来完成转换。例如,可以编写一个脚本,遍历MySQL的建表语句,根据上述差异进行替换和调整...

    MySQL分区表的正确使用方法

    MySQL分区表是一种优化大数据量表查询效率和管理历史数据的有效策略。它将一个大表物理地分割成多个独立的部分,每个部分称为一个分区,每个分区有自己的索引和数据,但对外表现为一个完整的逻辑表。这使得对大量...

    基于Mysql的表转HBase小Demo

    首先,创建或检查HBase表是否存在,然后根据设计的HBase表结构,将Mysql数据转化为HBase的Put对象,并提交到表中。 4. **单元测试**:提供的单元测试文件用于验证数据转换的正确性。通常会模拟一些基本操作,如插入...

    Mysql转oracle工具

    在转换过程中,可能需要将MySQL的数据分布策略转换为Oracle的表空间或分区策略。 5. **索引和约束**: MySQL与Oracle的索引类型和约束定义(如主键、外键)也有所不同,转换时需要注意。 6. **存储过程和函数**:...

    Oracle数据库sql转换mysql数据库工具

    3. **数据库架构差异**:比如分区表、物质化视图在MySQL中可能有不同的实现方式,需要调整转换策略。 4. **性能优化**:MySQL可能需要不同的索引策略和查询优化方法,转换后可能需要进一步优化。 5. **事务与并发...

    深入理解MySQL核心技术_MYSQL_

    2. **SQL语句解析**:MySQL通过解析器将SQL语句转化为可执行的查询计划。了解SQL语句的解析过程,包括词法分析和语法分析,能帮助我们编写更高效、更符合数据库逻辑的查询。 3. **索引原理**:MySQL中的索引有B-...

    MySQL_5.1_zh.chm & MySQL_5.5_en.chm文档

    MySQL 5.1是一个重要的里程碑,引入了许多增强功能,如分区表、存储过程、触发器和视图等。中文版文档便于国内用户理解和学习,减少了语言障碍,使得初学者能够更快速地掌握MySQL的基本操作和高级特性。 1. **安装...

    基于MySQL分区性能的详细介绍

    MySQL分区是一种优化大数据存储和查询性能的技术,它允许将单个大表的数据分散到不同的物理存储上,从而提高数据处理的效率。从MySQL 5.1.3版本开始,MySQL开始支持分区功能,包括RANGE、LIST、HASH和KEY四种分区...

    纯真ip库2017年1月20最新,已经转化成mysql数据表格式

    这个数据库已经被转化为MySQL数据表格式,使得数据存储和查询更加高效便捷。 在数据库领域,将数据转换为特定的数据库格式是一种常见的操作。在这个案例中,原始的IP库数据被转换成了SQL文件,这是一种结构化查询...

    mysql-5.5.32.tar.gz

    这一步会将源代码转化为可执行文件。 5. **安装**:编译无误后,使用`make install`将MySQL安装到系统默认的路径,通常为`/usr/local/mysql`。 6. **初始化数据库**:安装完成后,需要初始化数据库。执行`scripts/...

    mysql、posrgresql转成clickhouse db工具sync-master

    - **性能优化**:ClickHouse的设计倾向于处理大量数据的分析,而非事务处理,所以在设计表结构时,应考虑到ClickHouse的特性,如分区策略、索引优化等。 - **权限管理**:确保迁移过程中对源数据库和目标数据库的...

    携程 姜宇祥-MySQL源码开发实践

    3. **SQL解析与优化**:MySQL如何将SQL语句转化为执行计划,包括解析器的工作流程、查询优化器的选择策略(如Cost-Based Optimizer)以及索引的使用等。 4. **并发控制与锁机制**:分析MySQL的并发控制机制,如多...

    mysql练手项目, mysql 项目实战

    通过实际项目,你可以将理论知识转化为实践经验,从而更好地应对实际工作中的挑战。在实践中,你可能还会遇到更多如分区,复制,集群等高级主题,这些都是提升数据库管理和开发技能的重要部分。

    去哪儿MySQL开发规范

    1. **禁止使用分区表**:虽然分区表能提升查询性能,但增加了管理复杂度,故不推荐使用。 2. **拆分大字段和访问频率低的字段**:对于占用空间较大的字段或很少被访问的字段,考虑将其单独存放,以便于优化性能。 ...

    MySQL workbeach教程

    通过以上步骤,您可以利用 MySQL Workbench 进行物理数据模型的设计与创建,并能够将设计结果转化为实际的数据库对象。该工具不仅提供了强大的设计功能,还支持多种高级特性,非常适合用于 MySQL 数据库的设计与开发...

    mysql项目的一些模块

    9. **分区功能**:对于大型表,MySQL支持分区,将一个大表分成多个物理部分,提高查询性能和管理效率。 10. **触发器**:允许在特定事件(如INSERT、UPDATE、DELETE)发生时自动执行某些操作,增加业务逻辑的灵活性...

    mysql源代码

    MySQL 5.1版本引入了许多重要的功能和改进,例如支持分区表、存储过程、触发器、视图等,这些都在源代码中有体现。在Windows环境下编译源代码,需要了解C++编程语言,因为MySQL主要用C++编写,并且还需要熟悉编译...

    自己将项目的mongo 换成mysql 学习.zip

    - MySQL有索引、分区表等优化手段,根据业务需求创建合适的索引以提升查询速度。 - 考虑到MySQL的事务处理能力,可能需要调整应用的事务策略。 6. **事务处理**: - MongoDB仅在4.0版本后才支持有限的事务,而...

Global site tag (gtag.js) - Google Analytics