› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
faya
V2EX  ›  MySQL

mysql 插入数据时,是先检测再插入,还是插入时提示重复键判断已经存在?这两种方式哪种好点?另外如果重复插入自增 id 会增加,这个会占用空间吗?

  •  
  •   faya · Aug 10, 2018 via Android · 4618 views
    This topic created in 3010 days ago, the information mentioned may be changed or developed.
    3 replies  •  2018-08-11 01:03:16 +08:00
    wshcdr
    wshcdr
    Aug 10, 2018
    1
    这个问题有点奇怪
    xud6
    xud6
    Aug 10, 2018
    2
    先检测再插入,并行处理会有点难。
    ppyybb
    ppyybb
    Aug 11, 2018 via iPhone
    3
    看业务,如果比较简单就 on duplicate,自增的 ID 如果怕溢出就选择用 bigint 做主键,(如果并发不高的话可以将预分配的下一个自增 id 重新设置回来的)

    如果业务复杂就没办法了,只能选择先检查后处理,这种情况可能遇到并发问题导致检查后其他线程又插入了,最好业务上做处理,利用 unique key 抛出的异常判断。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2287 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 12:17 · PVG 20:17 · LAX 04:17 · JFK 07:17
    ♥ Do have faith in what you're doing.