`

mysql分表操作--简单设计

 
阅读更多

 

这里做个例子进行分表,设计很简单,根据类型不同进行分表,比如有三种类型,三张表结构一模一样,建立一个表名索引表,然后根据类型在这张索引表里查询要插入的表名,然后再进行插入操作。
 
索引表:
CREATE TABLE tableindex (
  id int(11) NOT NULL AUTO_INCREMENT,
  tablename varchar(10) DEFAULT NULL,
  type varchar(10) DEFAULT NULL,
  PRIMARY KEY (id)
 
业务表:
CREATE TABLE `e` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `password` varchar(20) DEFAULT NULL,
  `name` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 
三张表e,e0,e1表结构一样
 
package com.msg.domain;

public class User implements java.io.Serializable {
	private static final long serialVersionUID = 1L;
	private String name;
	private String password;
	private String type;
	public User() {
		
	}
	
	public User(String name, String password) {
		this.name = name;
		this.password = password;
	}
	
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}
	
}

 

 

 

public void insertMessage() {
		JdbcUtils jdbc = new JdbcUtils();//JDBC操作类
		try {
			List<User> userList = new ArrayList<User>();
			User user0 = new User(); 
			user0.setName("张三");
			user0.setPassword("123");
			user0.setType("1");
			userList.add(user0);
			User user1 = new User(); 
			user1.setName("李四");
			user1.setPassword("123456");
			user1.setType("2");
			userList.add(user1);
			User user2 = new User(); 
			user2.setName("王五");
			user2.setPassword("890");
			user2.setType("3");
			userList.add(user2);
			for (User user:userList){
				StringBuffer sb = new StringBuffer();
				//查询业务表名
				String tableName = 
					jdbc.query("select * from tableindex where type='"+user.getType()+"'");
				sb.append("insert into "+tableName+"(name,password) values('"+user.getName()+"','"+
						user.getPassword()+"')");
				//执行插入操作
				jdbc.insert(sb.toString());
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
  • 大小: 2.8 KB
  • 大小: 17.9 KB
分享到:
评论

相关推荐

    springMvc Mybatis mysql 分库分表-shardingJdbc.zip

    Spring MVC、MyBatis和MySQL是常见的Web开发框架与数据库系统,而ShardingJDBC则是阿里巴巴开源的一款分布式数据库中间件,用于实现数据库的分库分表。本项目结合了这些技术,旨在提供一种高效且可扩展的解决方案。 ...

    MySQL分区分表的设计及实现-收藏备用.pdf

    ### MySQL分区分表的设计及实现 #### 一、引言 随着信息技术的飞速发展,数据量呈现爆炸式增长,海量数据的管理和处理成为了一项挑战。尤其在关系型数据库中,如MySQL这样的系统,当单个表的数据量达到一定规模后...

    分库分表-zdal

    具体示例代码将帮助开发者更好地理解如何使用Zdal进行数据库的分库分表操作。 #### 六、业务边界分析 - **业务用例边界**:定义了Zdal在特定业务场景中的适用范围。 - **系统用例边界**:明确了Zdal在系统层面的...

    Mycat读写分离、主从切换、分库分表的操作记录- 线上操作手册

    ### Mycat读写分离、主从切换、分库分表的操作记录—线上操作手册 #### 一、Mycat简介及关键特性 Mycat是一个开源的分布式数据库系统,能够作为一个中间件帮助开发者管理和优化数据库资源。随着业务增长和技术演进...

    MySQL性能调优与架构设计.pdf -文字版

    ### MySQL性能调优与架构设计知识点概述 #### 一、MySQL基本介绍 ##### 1.1 MySQL Server简介 - **1.1.1 什么是MySQL** - MySQL是一款由MySQL AB公司开发的开源数据库管理系统,后来被Sun Microsystems收购。它是...

    Node.js的MySQL分表分库访问中间件TribeDB.zip

    Node.js 的 MySQL 分表分库数据访问中间件,实现MySQL数据的分布式集群储存管理。在处理海量数据、高并发访问时,获得更加优越的性能及横向扩展能力。它包含以下主要特性: 可伸缩、高扩展的架构 ...

    PHP操作mysql数据库分表的方法_.docx

    PHP作为常用的后端开发语言,与MySQL数据库结合时,如何有效地操作分表显得尤为重要。 本篇将详细介绍一种基于PHP操作MySQL数据库的分表方法,即通过自增ID的尾数进行分表。这种策略简单易行,根据ID对10取模,将...

    mysql分表分库的应用场景和设计方式

    5. **跨库跨表查询**:分库分表后,原本简单的单表查询可能变为复杂的跨库跨表查询,需要设计合理的查询路由和JOIN策略。 总的来说,MySQL的分表分库是一个深度优化数据库性能的重要手段,但需要根据具体业务需求和...

    mysql分表,分区的区别与联系归类.pdf

    MySQL的分表和分区是数据库管理中两种常见的优化策略,旨在提高大数据量下的查询性能和系统稳定性。它们虽然在目的上有相似之处,但实现方式和效果存在显著差异。 1. **分表**:分表是将一张大表拆分成多个小表,每...

    PHP操作mysql数据库分表的方法

    标签“php操作mysql数据库”和“php操作mysql分表”进一步明确了主题,说明我们将讨论如何使用PHP脚本来连接、查询和操作MySQL数据库中的分表。 在文章的部分内容中,作者提出了两种基本的分表策略: 1. **基于...

    MySQL-win64

    MySQL-win64是一个专为Windows操作系统设计的MySQL数据库服务器的64位版本。MySQL是一种流行的开源关系型数据库管理系统(RDBMS),广泛应用于网站开发、数据存储和数据分析等领域。其64位版本能够利用现代多核...

    MySQL分表自增ID问题的解决方法

    MySQL的分表操作在处理大数据量时非常常见,目的是提高查询效率和系统性能。然而,分表后,自增ID作为主键的方式不再适用,因为每个分表都需要独立的自增ID,且需要保证全局唯一性。在Oracle、PostgreSQL和DB2等其他...

    集成sharding-jdbc实现分库分表.zip

    它支持SQL标准,兼容各种主流数据库,如MySQL、Oracle等,使得数据库的水平扩展变得简单易行。 2. **分库分表原理** 分库分表是将一个大的数据库拆分成多个小的数据库,将一张大表拆分成多张小表,以减轻单个...

    根据规则mysql创建分表

    在MySQL中,创建分表(Sharding)是一种处理大型数据库和提高性能的策略。分表通常是基于特定的规则将数据分散存储在多个表中。这种方法可以减少单个表的大小,提高查询效率,平衡负载,并增强系统的可伸缩性。 ...

    去年底写的mysql分库分表中间件heisenberg

    Heisenberg支持透明化操作,对应用层无侵入,使得数据库扩展变得相对简单。 **二、核心特性** 1. **动态分片**:Heisenberg支持在线动态扩容和缩容,无需停服即可调整分片策略,适应业务变化。 2. **读写分离**:...

    MySQL 数据库设计实践

    ### MySQL 数据库设计实践 #### 一、MySQL介绍 MySQL是一种关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。它以其高性能、高可靠性和易用性而受到广泛欢迎,尤其适合Web应用程序。 - **连接...

    Mycat分表功能简易使用手册

    ### Mycat分表功能简易使用手册知识点 ...通过这些知识点的了解,用户可以更好地使用Mycat进行数据库的分表操作,合理地设计和管理分表规则,确保数据按照预定的规则分散存储,从而提高数据库的性能和扩展性。

    MySql HA.docx

    **概念**:MySQL 读写分离是指将查询操作(读操作)和数据修改操作(写操作)分别分配到不同的服务器上执行,以此提高系统的整体性能和稳定性。 - **实现方法**:常见的读写分离方式包括使用 Mycat 或 ShardingJdbc...

    MySQL性能调优与架构设计.

    - **架构设计**:合理设计数据库架构,如使用主从复制、分库分表等技术分散负载,提高系统的可扩展性和可用性。 - **参数调整**:根据实际应用场景调整MySQL的各种配置参数,如innodb_buffer_pool_size等。 通过...

Global site tag (gtag.js) - Google Analytics