内容简介:世界杯什么的开幕式么……一封邮件飞了过来还是处理一下邮件吧!
世界杯什么的开幕式么……
一封邮件飞了过来
2018-06-15 00:07:26,479 [ERROR] [startQuertz_Worker-3] o.q.c.JobRunShell:211 Job DEFAULT.validateOrderTask threw an unhandled Exception: org.springframework.scheduling.quartz.JobMethodInvocationFailedException: Invocation of method 'validateOrder' on target class [class com.air.tqb.quarz.F6MonitorJob] failed; nested exception is org.springframework.jdbc.UncategorizedSQLException: ### Error updating database. Cause: com.mysql.jdbc.exceptions.MySQLTimeoutException: Statement cancelled due to timeout or client request ### The error may involve defaultParameterMap ### The error occurred while setting parameters ### SQL: CREATE TABLE tm_monitor_order_20180615 ( `pk_id` int(11) NOT NULL COMMENT '主键id', `storage_id` int(11) NOT NULL COMMENT '仓库id', `part_id` int(11) NOT NULL COMMENT '材料id', `order_no` varchar(25) NOT NULL COMMENT '批次单号', `number` decimal(18,2) NOT NULL COMMENT '库存数', `avg_price` decimal(18,6) NOT NULL COMMENT '含税价格', `avg_price_no_tax` decimal(18,6) NOT NULL COMMENT '除税价格', `supplier_id` bigint(20) unsigned DEFAULT NULL COMMENT '供应商id', `creator` bigint(20) unsigned NOT NULL COMMENT '创建人', `creationtime` datetime NOT NULL COMMENT '创建日期(库龄)', `modifiedtime` timestamp NULL DEFAULT NULL COMMENT '修改时间', `modifier` bigint(20) unsigned DEFAULT NULL COMMENT '修改人', `id_own_org` bigint(20) unsigned NOT NULL COMMENT '对应门店id', `id_source_bill` bigint(20) unsigned DEFAULT NULL COMMENT '来源单ID', `version` bigint(20) NOT NULL DEFAULT '0' COMMENT '乐观锁版本号', PRIMARY KEY (`pk_id`), KEY `IDX_PART_ID` (`part_id`), KEY `IDX_ORG` (`id_own_org`), KEY `IDX_STORAGE_ID` (`storage_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='批次主表备份'; INSERT INTO tm_monitor_order_20180615 (pk_id, storage_id, part_id, order_no, number, avg_price, avg_price_no_tax, supplier_id, creator, creationtime, modifiedtime, modifier, id_own_org, id_source_bill, version) SELECT pk_id, storage_id, part_id, order_no, number, avg_price, avg_price_no_tax, supplier_id, creator, creationtime, modifiedtime, modifier, id_own_org, id_source_bill, version FROM ts_storage_partinfo_order ### Cause: com.mysql.jdbc.exceptions.MySQLTimeoutException: Statement cancelled due to timeout or client request ; uncategorized SQLException for SQL []; SQL state [null]; error code [0]; Statement cancelled due to timeout or client request; nested exception is com.mysql.jdbc.exceptions.MySQLTimeoutException: Statement cancelled due to timeout or client request at
还是处理一下邮件吧!
分析
创建该表的目的是用来监控期末期初数据 也可以作为部分报表的输入
那么该表插入需要超时花了多少时间呢???
<updateid="createOrderMonitorTable"timeout="600">
CREATE TABLE tm_monitor_order_${suffix} (
`pk_id` int(11) NOT NULL COMMENT '主键id',
`storage_id` int(11) NOT NULL COMMENT '仓库id',
`part_id` int(11) NOT NULL COMMENT '材料id',
`order_no` varchar(25) NOT NULL COMMENT '批次单号',
`number` decimal(18,2) NOT NULL COMMENT '库存数',
`avg_price` decimal(18,6) NOT NULL COMMENT '含税价格',
`avg_price_no_tax` decimal(18,6) NOT NULL COMMENT '除税价格',
`supplier_id` bigint(20) unsigned DEFAULT NULL COMMENT '供应商id',
`creator` bigint(20) unsigned NOT NULL COMMENT '创建人',
`creationtime` datetime NOT NULL COMMENT '创建日期(库龄)',
`modifiedtime` timestamp NULL DEFAULT NULL COMMENT '修改时间',
`modifier` bigint(20) unsigned DEFAULT NULL COMMENT '修改人',
`id_own_org` bigint(20) unsigned NOT NULL COMMENT '对应门店id',
`id_source_bill` bigint(20) unsigned DEFAULT NULL COMMENT '来源单ID',
`version` bigint(20) NOT NULL DEFAULT '0' COMMENT '乐观锁版本号',
PRIMARY KEY (`pk_id`),
KEY `IDX_PART_ID` (`part_id`),
KEY `IDX_ORG` (`id_own_org`),
KEY `IDX_STORAGE_ID` (`storage_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='批次主表备份';
INSERT INTO tm_monitor_order_${suffix}
(pk_id, storage_id, part_id, order_no, number, avg_price, avg_price_no_tax, supplier_id, creator, creationtime, modifiedtime, modifier, id_own_org, id_source_bill, version)
SELECT
pk_id,
storage_id,
part_id,
order_no,
number,
avg_price,
avg_price_no_tax,
supplier_id,
creator,
creationtime,
modifiedtime,
modifier,
id_own_org,
id_source_bill,
version
FROM ts_storage_partinfo_order
</update>
小伙伴用了600s都没能正确的产生 发生了事务回滚【要记得创建表等ddl无法回滚】
那么此时将产生一个表【但是数据为空】
再屡屡我们的需求:
我们对于该表的定位基本一次插入永不更新~【纯查询】
那么是否有必要使用innodb呢?
I have a table with 17 million rows. I need to grab 1 column of that table and insert it all into another table. Here’s what I did:
INSERT IGNORE INTO table1(name) SELECT name FROM main WHERE ID < 500001
InnoDB executes in around 3 minutes and 45 seconds
However, MyISAM executes in just below 4 seconds. Why the difference?
I see everyone praising InnoDB but honestly I don’t see how it’s better for me. It’s so much slower. I understand that it’s great for integrity and whatnot, but many of my tables will not be updated (just read). Should I even bother with InnoDB?
有人问了如上问题 其实innodb具有事务 那么必然需要大量的redolog来保证 同时为了维持较好的性能 innodb会使用较多的内存来缓存对应的数据【其消耗更多的磁盘空间】
MyISAM is designed with the idea that your database is queried far more than its updated and as a result it performs very fast read operations. If your read to write(insert|update) ratio is less than 15% its better to use MyISAM.InnoDB uses row level locking, has commit, rollback, and crash-recovery capabilities to protect user data. It supports transaction and fault tolerance
那么我们可以简单认为oltp应用使用innodb更合适 而olap应用使用myisam更加合适【或许还有其他适合压缩型】
对于上述不会更新的表 我重建了之后如下
同时我们比较一下表占用的大小
比如
但是前一天备份大小如下
似乎更小嘛【innodb】===》不过没有数据噢(侧面说明了rows不准确)不过从733M缩小到了590M 同时时间减少了如此多【超过600s===》17s】
方案
考虑在创建表的时候使用如下
ENGINE = MyISAM
同时注意合理使用校验集~
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Understanding Machine Learning
Shai Shalev-Shwartz、Shai Ben-David / Cambridge University Press / 2014 / USD 48.51
Machine learning is one of the fastest growing areas of computer science, with far-reaching applications. The aim of this textbook is to introduce machine learning, and the algorithmic paradigms it of......一起来看看 《Understanding Machine Learning》 这本书的介绍吧!