mysql如何修改表结构

mysql如何修改表结构,第1张

Online DDL 工具:pt-osc

对于 MySQL Online DDL 目前主流的有三种工具:

原生 Online DDL;

pt-osc(online-schema-change),

gh-ost

本文主要讲解 pt-online-schema-change 的使用以及三种工具的简单对比。

一、原理及限制

1.1 原理

1. 创建一个与原表结构相同的空表,表名是 _new 后缀;

2. 修改步骤 1 创建的空表的表结构;

3. 在原表上加三个触发器:delete/update/insert,用于 copy 数据过程中,将原表中要执行的语句在新表中执行;

4. 将原表数据以数据块(chunk)的形式 copy 到新表;

5. rename 原表为 old 表,并把新表 rename 为原表名,然后删除旧表;

6. 删除触发器。

SAXReader

reader

=

new

SAXReader()

Document

doc=reader.read(new

File("src/Cinema.xml"))

Element

eleRoot=doc.getRootElement()

for(Iterator

its=eleRoot.elementIterator()its.hasNext()){

Element

eleCount=(Element)its.next()

Iterator

it=eleCount.elementIterator()

while(it.hasNext()){

Element

eleName=(Element)it.next()

}

用这些代码可以实现从XML中读取数据

然后建立连接用一个实体类用来临时存放SQL数据把

用List<News>存放

Class.forName("oracle.jdbc.OracleDriver")

String

url="jdbc:oracle:thin:@192.168.0.200:1521:tarena"

Connection

con=DriverManager.getConnection(url,"hsd1103","hsd1103")

String

str="insert

into

news

value(?,?,?,?,?)"//问号是对应下面你所要传递的值和

你SQL中的字段值对应

News

news=new

News()

PreparedStatement

stmt=PreparedStatement

pstm

=

con.prepareStatement()

//把xml中的数据放置到sql中

stmt.setInt(1,news.getID())

stmt.setString(2,news.getName)

stmt.setString(3,news.getAcc())

.

.

.

按照这样的方式些就可以了我用的是oracle

灵活运用MYSQL的各种高可用技术来达到下面各种级别的高可用要求

要达到99.9%:使用MYSQL复制技术

要达到99.99%:使用MYSQL NDB 集群和虚拟化技术

要达到99.999%:使用shared-nothing架构的GEO-REPLICATION和NDB集群技术

Gluster Geo-replication是什麼?

Gluster Geo-replication(简称geo-replication)是一种异地灾备技术,


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8713240.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-20
下一篇 2023-04-20

发表评论

登录后才能评论

评论列表(0条)

保存