BeWithYou

胡搞的技术博客

运维/工具

MySQL更新和插入时忽略duplicate


今天批量更新表数据的时候遇到有duplicate key的问题,这些都是脏数据,不用处理。那么如何让UPDATE在遇到错误时,忽略本条操作,继续往下执行呢? 我们首先看下UPDATE的语法: Single-table语法: UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] ……
运维/工具

MySQL分组后获取每组特定列最大值的记录


MySQL分组后获取每组特定列最大值的记录 如果只是获取特定列的最大值,很简单。 SELECT MAX(price) FROM tb_stuff GROUP BY shop_id; 但是这里我们要获取每一组符合最大值的记录完整值,这里用个黑科技,先子查询内部排序以后,再从外部分组查询。 SELECT *,tmp.id as id FROM (SELECT * FROM tb_stff ORDER BY price D……
运维/工具

sphinx中bigint类型兼容问题


sphinx中bigint类型兼容问题 编译sphinx时如果没有加如下./configure --enable-id64的参数的话,是不支持mysql中bigint类型的字段的主键。如果此时不想重新编译sphinx,我们还有曲线救国的方法。 比如我们数据表的自增id字段为bigint类型,且为主键。 可以修改conf文件中的sql_query,添加select项目:select id, id as id_str,other_content from tab……
运维/工具

mongodb如何随机取出若干条文档


最近在重构德州机器人的服务,原本的机器人列表写在json文件中,每次进程读取文件后放在内存中。这样并不灵活,并且缺乏实时性。这次重构将其放入mongo中,每隔若干时间从服务端PHP全量拉取数据并更新mongo,比如更新机器人的金钱余额等。同时还可以根据程序内实际派遣情况,同步更新mongo中机器人的状态。 遇到一个问题,如何从若干条符合条件的document中选择几条? mongo中的find方法和findOne方法取出……
运维/工具

mongoDB时间timezone问题


之前有个工具性质的内部系统,为了尝尝鲜,我选择了用mongo作为数据库。中间踩过不少坑,后来整理了一个PPT做了次内部分享。结果就没几个人来听…… 尴尬 今天发现了个有关时间的问题,记录一下。 之前我们记录时间用的是unix时间戳,后来想用按日期分组的功能,发现比较困难。因为mongo里关于日期的分组函数都是基于ISODate型数据的。看起来是这样的: db.getCollection(……
运维/工具

有关TRUNCATE不能事务回滚


今天做一个从文本全量导入数据库的功能,每次全量更新表里的数据。想法是在事务里先truncate掉表格,然后批量insert进去,出错则rollback,全部insert成功则commit。 然而发现一个问题,truncate以后即使回滚了也不能回到最初的状态。查了一下,truncate属于DDL语句,执行的时候是隐含着自动commit的,所以并不能在事务里使用。 简要记一下MySQL中数据语言的概念: 数据查询语……
回到顶部