怎么把mysql一个数据库从一台机器上 拷贝到另外一台

怎么把mysql一个数据库从一台机器上 拷贝到另外一台,第1张

1、在B机器上装mysql。将A机器上的mysql/data下的你的数据库目录整个拷贝下来。将B机器上的mysql服务停止。找到B机器上的mysql/data目录,将你拷贝的目录粘贴进去,然后启动mysql服务就可以了。 2、使用SQL语句备份和恢复你可以使用SELECT INTO OUTFILE语句备份数据,并用LOAD DATA INFILE语句恢复数据。这种方法只能导出数据的内容,不包括表的结构,如果表的结构文件损坏,你必须要先恢复原来的表的结构。 语法: SELECT * INTO {OUTFILE | DUMPFILE} ’file_name’ FROM tbl_name LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE ’file_name.txt’ [REPLACE | IGNORE] INTO TABLE tbl_name SELECT ... INTO OUTFILE ’file_name’

    分库分表是MYSQL应对大数据、高并发的常见解决方案,有很多朋友特别是熟悉ORACLE的朋友可能会问,

    MYSQL有分区表,分区表同样能达到IO分散、提高性能的目的,而且更简单,更方便,为何还要采用分库分表呢。

我想主要有以下几个方便的原因:

1、MYSQL 对多CPU的支持还不是很好,还不能充分发挥多CPU的能力,如不支持并行,很多东西都不支持在线DDL等,

     如果将分表数据堆积成分区表,即便IO不是问题,MYSQL自身管理上也是个问题,效率比分表差太多。   

2、MYSQL分区表自身的不完善,坑太多,有时完全起不到分区表的作用,和巨大单表无二致,甚至更差。

3、分区表,分区键设计不太灵活,如果不走分区键,很容易出现全表锁,性能大幅下降。

4、自己分库分表,自己掌控业务场景与访问模式,可控。分区表,研发写了一个sql,都不确定mysql是怎么玩的,不太可控。

5、备份恢复问题,巨大的单表导致备份恢复时间成倍增加,加大整库备份恢复失败风险,在一些业务场景下,

     甚至不能在有限的时间窗口内完成备份。

6、管理维护问题,如DDL,表一大简直是一场灾难。

    所以,现在很多的互联网公司的一些互联网应用,很少有采用分区表的,而大都采用分库分表。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存