zoukankan      html  css  js  c++  java
  • 2020-12-26:mysql中,表person有字段id、name、age、sex,id是主键,name是普通索引,age和sex没有索引。select * from person where id=1 and name='james' and age=1 and sex=0。请问这条语句有几次回表?

    2020-12-26:mysql中,表person有字段id、name、age、sex,id是主键,name是普通索引,age和sex没有索引。select * from person where id=1 and name='james' and age=1 and sex=0。请问这条语句有几次回表?

    福哥答案2020-12-26:

    答案是没有回表。

    一般题目是判断有没有回表,而这道题是要说出有几次回表。

    刚开始以为会用到回表。后来想了想,没有回表。id是等值查询,顶多命中1条数据。然后再对这1条数据做name过滤,就这么1条数据,没必要回表查询,连我都能想到,mysql的作者更能想到,mysql没那么傻。

    有什么不对的地方,请直接留言评论。

    1.创建表和插入数据:
    -- ----------------------------
    -- Table structure for `person` 表结构
    -- ----------------------------
    DROP TABLE IF EXISTS `person`;
    CREATE TABLE `person` (
    `id` int(11) NOT NULL,
    `name` varchar(255) NOT NULL,
    `age` int(11) NOT NULL,
    `sex` tinyint(4) NOT NULL,
    PRIMARY KEY (`id`),
    KEY `name` (`name`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    -- ----------------------------
    -- Records of person,表中记录
    -- ----------------------------
    INSERT INTO `person` VALUES ('1', 'james', '11', '1');
    INSERT INTO `person` VALUES ('2', 'haha', '12', '0');
    INSERT INTO `person` VALUES ('3', '福大大', '13', '2');

    2.查看执行计划:
    EXPLAIN SELECT * FROM person WHERE id=3;
    EXPLAIN SELECT * FROM person WHERE id=3 AND name='福大大';
    EXPLAIN SELECT * FROM person WHERE id=3 AND name='福大大' AND age=13;
    EXPLAIN SELECT * FROM person WHERE id=3 AND name='福大大' AND age=13 AND sex=2;


    ***
    [评论](https://user.qzone.qq.com/3182319461/blog/1608939505)

  • 相关阅读:
    【转】PG数据库高级用法 之 12306 -- 链接
    javascript实现浏览器管理员工具鼠标获取Html元素 并生成 xpath
    java图片识别 [Tesseract-OCR]
    MongoDB从环境搭建到代码编程(Window 环境)
    webDriver + Firefox 浏览器 完美兼容
    SQLServer 将日期改造成标准日期格式(如: 2016/6 ->201606)
    Angularjs+bootstrap 实现横向滑屏
    js数组长度
    Angularjs 跨域post数据到springmvc
    Oracle 18c 数据库中scott用户不存在的解决方法
  • 原文地址:https://www.cnblogs.com/waitmoon/p/14194604.html
Copyright © 2011-2022 走看看