1.复制表结构及数据到新表
CREATE TABLE 新表 SELECT * FROM 旧表
2.只复制表结构到新表
CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2
即:让WHERE条件不成立.
3.复制旧表的数据到新表(假设两个表结构一样)
INSERT INTO 新表 SELECT * FROM 旧表
4.复制旧表的数据到新表(假设两个表结构不一样)
INSERT INTO 新表(字段1,字段2,.......) SELECT 字段1,字段2,...... FROM 旧表
MySQL 对于千万级的大表的优化:常用的优化sql----突出快字,使完成 *** 作的时间最短
1、用索引提高效率:
2、选择有效率的表名顺序,及数据结构及字段;
3、使用DECODE函数可以避免重复扫描相同记录或重复连接相同的表;
4、删除重复记;
5、过内部函数提高SQL效率;......
读写分离----- *** 作不在一个表里完成
1、主数据库A,进行事务性增、改、删 *** 作(INSERT、UPDATE、DELETE);
2、从数据库B,进行SELECT查询 *** 作;
3、A复制到B,使数据保持一致性;
垂直划分 ------数据不存储在一个服务器里
按照功能划分,把数据分别放到不同的数据库和服务器。如博客功能的放到服务器A,储存文件放到服务器B;
水平划分------相同数据结构的数据不放在一张表里
把一个表的数据根据一定的规则划分到不同的数据库,两个数据库的表结构一样。
数据归档处理-----时间优先原则存储读取
将数据库中不经常使用的数据迁移至近线设备,将长期不使用的数据迁移至文件形式归档。这样,随着应用的需要,数据会在在线、近线和文件文档之间移动,如当应用需要访问很久以前的某些数据,它们的物理位置在近线设备,则会自动移动到在线设备。对用户的应用而言,这些都是透明的,就像所有数据都存放在在线设备一样,不会对数据库应用产生任何影响。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)