mysql>  explain select t1.* from t2 ,t1 where t2.id=t1.id and t2.id<3;\
+----+-------------+-------+------+---------------+------+---------+------+--------+----------------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+--------+----------------------------------------------------+
| 1 | SIMPLE | t2 | ALL | NULL | NULL | NULL | NULL | 134 | Using where |
| 1 | SIMPLE | t1 | ALL | NULL | NULL | NULL | NULL | 392625 | Using where; Using join buffer (Block Nested Loop) |
+----+-------------+-------+------+---------------+------+---------+------+--------+----------------------------------------------------+
2 rows in set (0.00 sec) mysql> select count(*) from t2;
+----------+
| count(*) |
+----------+
| 134 |
+----------+
1 row in set (0.00 sec) mysql> select count(*) from t2 where id<3;
+----------+
| count(*) |
+----------+
| 128 |
+----------+
1 row in set (0.00 sec)
驱动表 一般返回较少的记录: mysql> explain select t1.* from (select * from t2 where id<3) t2 ,t1 where t2.id=t1.id;
+----+-------------+------------+------+---------------+-------------+---------+--------------+--------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+------------+------+---------------+-------------+---------+--------------+--------+-------------+
| 1 | PRIMARY | t1 | ALL | NULL | NULL | NULL | NULL | 392625 | Using where |
| 1 | PRIMARY | <derived2> | ref | <auto_key0> | <auto_key0> | 5 | DEVOPS.t1.id | 10 | NULL |
| 2 | DERIVED | t2 | ALL | NULL | NULL | NULL | NULL | 134 | Using where |
+----+-------------+------------+------+---------------+-------------+---------+--------------+--------+-------------+
3 rows in set (0.00 sec) 是预估的需要扫描的行数
不是返回的行数
这就是两者的区别 Oracle 是预估返回的行数 MySQL 是预估扫描的行数,显示需要扫描的行数 mysql> analyze table t2;
+-----------+---------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+-----------+---------+----------+----------+
| DEVOPS.t2 | analyze | status | OK |
+-----------+---------+----------+----------+
1 row in set (0.17 sec) mysql> explain select t1.* from t2 ,t1 where t2.id=t1.id and t2.id=3;
+----+-------------+-------+------+---------------+------+---------+------+--------+----------------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+--------+----------------------------------------------------+
| 1 | SIMPLE | t2 | ALL | NULL | NULL | NULL | NULL | 16192 | Using where |
| 1 | SIMPLE | t1 | ALL | NULL | NULL | NULL | NULL | 392625 | Using where; Using join buffer (Block Nested Loop) |
+----+-------------+-------+------+---------------+------+---------+------+--------+----------------------------------------------------+
2 rows in set (0.00 sec) mysql> select count(*) from t2;
+----------+
| count(*) |
+----------+
| 16390 |
+----------+
1 row in set (0.01 sec) mysql> select count(*) from t2 where id=3;
+----------+
| count(*) |
+----------+
| 6 |
+----------+
1 row in set (0.01 sec)

Mysql 和Oracle rows 区别的更多相关文章

  1. 转载文章 MySQL与Oracle的区别

    MySQL与Oracle的区别   1.  Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高 ...

  2. mysql和 oracle 的区别

    垂直拆分: 把一个数据库中不同业务单元的数据分到不同的数据库里面.水平拆分: 根据一定的规则把同一业务单元的数据拆分到多个数据库中. 读写分离 主:写 从:查 ==================== ...

  3. MySQL与Oracle的区别

    1.语法上的区别 变量类型定义.IN  OUT的位置.变量定义的位置.游标的位置.异常的位置: 2.MySQL没有 return 关键字,采用leave label的方式结束循环或跳出存储 3.异常处 ...

  4. 开发中mysql和oracle的区别

    首先就不描述mysql与oracle在整个数据库系统上的区别了,仅从程序员开发的角度来说: 1.主键: mysql一般会用到一个自增的属性,例如设置一个id字段,类型设置为auto increment ...

  5. MySQL和Oracle的区别与不同

    一.mysql与Oracle的相同点: 1.都是关系型数据库管理系统(MySQL开放源码) 2.都是目前很流行的数据库(Oracle以分布式为核心): 二.MySQL.Oracle各自特点: 1.Or ...

  6. MySql与Oracle的区别总结

    在平时工作中使用这两个数据库的时候要多一些,这两数据库的使用方面存在的一些各自不同的地方,许多面试官也会问这两个的区别.所以,凭着自己的一些经验个感触,来说说这二者的区别. 使用的群众:MySql中小 ...

  7. MySql和Oracle数据库区别

    Oracle与mysql区别: 1.Oracle有表空间,mysql没有表空间. 2.mysql的char类型取值范围0-255字节,varchar为0-65535字节 3.oracle的char类型 ...

  8. MySQL和Oracle的区别

    由于SQL Server不常用,所以这里只针对MySQL数据库和Oracle数据库的区别 (1) 对事务的提交    MySQL默认是自动提交,而Oracle默认不自动提交,需要用户手动提交,需要在写 ...

  9. mysql与Oracle的区别:

    1.  Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高. 2. Oracle支持大并发,大 ...

随机推荐

  1. 3DShader之投影贴图(Projective Texturing)

    相信大家都应该玩过CS或者CF吧,游戏里面有个喷图功能,就是按一个T键就能在墙上或者地板上喷出自己预先设定的图案. 而刚好这就是我们这个Shader所需实现的内容.由于没有潜伏者的贴图,我只有从这个图 ...

  2. Ibatis的分页机制的缺陷

    我们知道,Ibatis为我们提供了可以直接实现分页的方法 queryForList(String statementName, Object parameterObject, int skipResu ...

  3. 从头学Qt Quick系列

    http://www.cnblogs.com/csulennon/category/686605.html

  4. 基于visual Studio2013解决C语言竞赛题之1009补数

         题目 解决代码及点评 /************************************************************************/ ...

  5. Swift - 异步加载各网站的favicon图标,并在单元格中显示

    下面是一个简单的应用,表格视图的各个单元格自动异步加载各个网站的favicon图标,并显示出来. 主要是复习下如何自定义单元格,单元格中图片的异步加载,以及didSet的用法. 效果图如下: 操作步骤 ...

  6. C#面向对象1 类 以及 类的继承(new、ovverride)

    类 的典型代码============================== 包括 属性及其判断赋值  方法  构造函数及其重载 )                 {                  ...

  7. SAP超时问题

    其他常用的参数如下: login/system_client 登录时默认的Client号 login/password_expiration_time 密码有效期 login/fails_to_use ...

  8. boost参考博客

    http://blog.csdn.net/caimouse/article/category/1339053

  9. [置顶] 关于本博客 http://www.imobilebbs.com

    由于时间上的关系,本博客不再和引路蜂移动软件博客同步更新,    请直接访问 http://www.imobilebbs.com 谢谢您的支持,再见   引路蜂博客

  10. PB+MS SQL+触发器必须指出

    PB+MS SQL+触发器必须指出: 若触发器存在两笔以上的返回值,比方两条update 语句,被误判为数据有改变.存盘不成功. 提示: Row changed between retrieve an ...