重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
解决方案之一,就是把你的所有操作放在一个连接中执行完毕。mysql
创新互联是一家专业提供泗县企业网站建设,专注与网站设计、成都做网站、HTML5建站、小程序制作等业务。10年已为泗县众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。
-h${HOSTNAME}
-P${PORT}
-u${USERNAME}
-p${PASSWORD}
${DBNAME}
x.sqlset
AUTOCOMMIT=0;start
transaction;在X.sql
中你可以写入语句。中间部分是一些数据库的操作,如移表,删除等commit;
千万行数据,表数据巨大。
1、慢查询的产生:很难在一定时间内过滤出所需要的数据。
2、建立索引需要更长的时间。
Mysql版本5.5 建立索引会锁表
Mysql版本=5.5 谁让不会锁表,但会引起主从延迟。
3、修改表结构需要长时间锁定表
4、会造成长时间的主从延迟。
5、影响正常的数据操作。
1、分库分表把一张大表分为多个小表
难点:
分表主键的选择
分表后跨分区数据 的查询和统计
2、大表的历史数据归档
好处:
减少对前后端业务的影响。
难点:
归档时间点的选择
如何进行归档操作。
运行时间比较长,操作的数据比较多的事务。
锁定太多的数据,造成大量的阻塞和锁超时。
回滚时间比较长
执行时间比较长,容易造成主从延迟。
避免一次处理太多的数据。
移除不必要在事务中操作的select操作
事务能保证你做的一系列动作,要么全部成功。如果有一个操作失败,就回退到修改前。 比如你要做下面几个操作, 1.删除表A中的某些记录 2.向B添加一些记录。 3.修改C表中的一些数据。 使用事务,如果1,2都成功了,3却失败了。就会回退到第1步执行前的样子,ABC表都没被修改。