合理使用django+mysql

1 前言

随着码龄的增长,对之前写的django+mysql深表遗憾(差的没边)。

本文先零碎记录,日后有机会再系统化。

 

2 一些经验

2.1 如果业务逻辑包含多条sql, 要考虑原子操作。

2.2 mysql的upsert操作

insert into A select a,b,c,d from B
ON DUPLICATE KEY UPDATE `c` = VALUES(`c`) , `d` = VALUES(`d`)

其中a为主键

  • 如果主键a在表A不存在,则插入(a,b,c,d)到表A
  • 如果主键a在表A存在,则在表A中更改主键为a的记录(修改c,d)

2.3 mysql的update + select 操作

UPDATE A inner join B on A.id = B.id set A.k = B.k                            

其中:将A表的字段k更新为B.k

 2.4 数据库死锁

select * from information_schema.innodb_trx \G;
select concat('KILL ',id,';') from information_schema.processlist

  

posted @ 2019-09-18 16:41  fly_pig  阅读(233)  评论(0编辑  收藏  举报