这里做个例子进行分表,设计很简单,根据类型不同进行分表,比如有三种类型,三张表结构一模一样,建立一个表名索引表,然后根据类型在这张索引表里查询要插入的表名,然后再进行插入操作。
索引表:
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(); } }
相关推荐
Spring MVC、MyBatis和MySQL是常见的Web开发框架与数据库系统,而ShardingJDBC则是阿里巴巴开源的一款分布式数据库中间件,用于实现数据库的分库分表。本项目结合了这些技术,旨在提供一种高效且可扩展的解决方案。 ...
### MySQL分区分表的设计及实现 #### 一、引言 随着信息技术的飞速发展,数据量呈现爆炸式增长,海量数据的管理和处理成为了一项挑战。尤其在关系型数据库中,如MySQL这样的系统,当单个表的数据量达到一定规模后...
具体示例代码将帮助开发者更好地理解如何使用Zdal进行数据库的分库分表操作。 #### 六、业务边界分析 - **业务用例边界**:定义了Zdal在特定业务场景中的适用范围。 - **系统用例边界**:明确了Zdal在系统层面的...
### Mycat读写分离、主从切换、分库分表的操作记录—线上操作手册 #### 一、Mycat简介及关键特性 Mycat是一个开源的分布式数据库系统,能够作为一个中间件帮助开发者管理和优化数据库资源。随着业务增长和技术演进...
### MySQL性能调优与架构设计知识点概述 #### 一、MySQL基本介绍 ##### 1.1 MySQL Server简介 - **1.1.1 什么是MySQL** - MySQL是一款由MySQL AB公司开发的开源数据库管理系统,后来被Sun Microsystems收购。它是...
Node.js 的 MySQL 分表分库数据访问中间件,实现MySQL数据的分布式集群储存管理。在处理海量数据、高并发访问时,获得更加优越的性能及横向扩展能力。它包含以下主要特性: 可伸缩、高扩展的架构 ...
PHP作为常用的后端开发语言,与MySQL数据库结合时,如何有效地操作分表显得尤为重要。 本篇将详细介绍一种基于PHP操作MySQL数据库的分表方法,即通过自增ID的尾数进行分表。这种策略简单易行,根据ID对10取模,将...
5. **跨库跨表查询**:分库分表后,原本简单的单表查询可能变为复杂的跨库跨表查询,需要设计合理的查询路由和JOIN策略。 总的来说,MySQL的分表分库是一个深度优化数据库性能的重要手段,但需要根据具体业务需求和...
MySQL的分表和分区是数据库管理中两种常见的优化策略,旨在提高大数据量下的查询性能和系统稳定性。它们虽然在目的上有相似之处,但实现方式和效果存在显著差异。 1. **分表**:分表是将一张大表拆分成多个小表,每...
标签“php操作mysql数据库”和“php操作mysql分表”进一步明确了主题,说明我们将讨论如何使用PHP脚本来连接、查询和操作MySQL数据库中的分表。 在文章的部分内容中,作者提出了两种基本的分表策略: 1. **基于...
MySQL-win64是一个专为Windows操作系统设计的MySQL数据库服务器的64位版本。MySQL是一种流行的开源关系型数据库管理系统(RDBMS),广泛应用于网站开发、数据存储和数据分析等领域。其64位版本能够利用现代多核...
MySQL的分表操作在处理大数据量时非常常见,目的是提高查询效率和系统性能。然而,分表后,自增ID作为主键的方式不再适用,因为每个分表都需要独立的自增ID,且需要保证全局唯一性。在Oracle、PostgreSQL和DB2等其他...
它支持SQL标准,兼容各种主流数据库,如MySQL、Oracle等,使得数据库的水平扩展变得简单易行。 2. **分库分表原理** 分库分表是将一个大的数据库拆分成多个小的数据库,将一张大表拆分成多张小表,以减轻单个...
在MySQL中,创建分表(Sharding)是一种处理大型数据库和提高性能的策略。分表通常是基于特定的规则将数据分散存储在多个表中。这种方法可以减少单个表的大小,提高查询效率,平衡负载,并增强系统的可伸缩性。 ...
Heisenberg支持透明化操作,对应用层无侵入,使得数据库扩展变得相对简单。 **二、核心特性** 1. **动态分片**:Heisenberg支持在线动态扩容和缩容,无需停服即可调整分片策略,适应业务变化。 2. **读写分离**:...
### MySQL 数据库设计实践 #### 一、MySQL介绍 MySQL是一种关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。它以其高性能、高可靠性和易用性而受到广泛欢迎,尤其适合Web应用程序。 - **连接...
### Mycat分表功能简易使用手册知识点 ...通过这些知识点的了解,用户可以更好地使用Mycat进行数据库的分表操作,合理地设计和管理分表规则,确保数据按照预定的规则分散存储,从而提高数据库的性能和扩展性。
**概念**:MySQL 读写分离是指将查询操作(读操作)和数据修改操作(写操作)分别分配到不同的服务器上执行,以此提高系统的整体性能和稳定性。 - **实现方法**:常见的读写分离方式包括使用 Mycat 或 ShardingJdbc...
- **架构设计**:合理设计数据库架构,如使用主从复制、分库分表等技术分散负载,提高系统的可扩展性和可用性。 - **参数调整**:根据实际应用场景调整MySQL的各种配置参数,如innodb_buffer_pool_size等。 通过...