首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
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
V2EX  ›  MySQL

mysql 中,如果一张表没有主键也没有索引,执行 delete 会进行怎么样的操作?

  •  
  •   yaoweber · 68 天前 · 1793 次点击
    这是一个创建于 68 天前的主题,其中的信息可能已经有所发展或是发生改变。

    例如: 表 1: id name addr 1 zhangsan xxx 2 lisi xxx 3 wangwu xxx

    将进行 delete 操作: delete from 表 1 where id=3; 数据库会进行什么操作?

    是全表扫描一列一列的对比?生成的 binlog 会是什么样呢?

    8 回复  |  直到 2019-02-22 18:57:21 +08:00
        1
    banxi1988   68 天前   ♥ 1
    其实你没有设置主键,MySQL 内部也会维护一个跟主键类似的东西。
        2
    wd   68 天前 via iPhone
    全表扫描 一行一行比
        3
    keepmovingbuddy   68 天前
    用 explain 命令执行一下就知道数据库具体怎么执行你的命令了
        4
    yaoweber   68 天前
    @banxi1988 现在问题是我都不会走主键
        5
    yaoweber   68 天前
    @wd 一行一行对比没有毛病,但是已经定位到某一行,然后怎么比呢?
        6
    wd   68 天前 via iPhone
    @yaoweber #5 比你的 where 指定的那列呀
        7
    msg7086   68 天前
    已经定位到某一行了还比什么?直接删掉这行啊!
        8
    c4f36e5766583218   60 天前
    @yaoweber 你不是写了 where id=3 ?(读取一行判断 id=3,删除,继续下一行
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1017 人在线   最高记录 5043   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 17ms · UTC 22:44 · PVG 06:44 · LAX 15:44 · JFK 18:44
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1