Win10 下载、安装 Navicat 15并激活
【官网地址:】
https://www.navicat.com.cn/products
【百度云地址:(navicat + 注册机)】
链接:https://pan.baidu.com/s/1PQsxxCy6a53BKVZifeRoJg
提取码:zcnp
原文链接: https://www.cnblogs.com/l-y-h/archive/2020/04/21/12746596.html
【官网地址:】
https://www.navicat.com.cn/products
【百度云地址:(navicat + 注册机)】
链接:https://pan.baidu.com/s/1PQsxxCy6a53BKVZifeRoJg
提取码:zcnp
原文链接: https://www.cnblogs.com/l-y-h/archive/2020/04/21/12746596.html
MySQL 服务器可以在不同的SQL模式下运行, 不同的SQL模式会影响MySQL支持的SQL语法以及它执行的数据验证检查。不同版本的MySQL默认的SQL模式也可能不同。 当前服务的SQL模式是由系统变量 sql_mode 决定的。
在客户端, 可以通过 select @@session.sql_mode 语句查看当前连接的sql_mode ,通过 select @@global.sql_mode 语句查看全局的 sql_mode。 比如:
mysql> select @@session.sql_mode;
+-------------------------------------------------------------------------------------------------------------------------------------------+
| @@session.sql_mode |
+-------------------------------------------------------------------------------------------------------------------------------------------+
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+-------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
CREATE TABLE `tb_orders_10w` (
`order_id` bigint(20) NOT NULL COMMENT '订单自增id',
`order_no` bigint(20) NOT NULL COMMENT '外部订单号',
`uid` bigint(20) NOT NULL COMMENT '所属用户id',
`sender_name` varchar(64) DEFAULT '' COMMENT '发件人',
`sender_mobile` varchar(20) DEFAULT NULL COMMENT '发件人手机',
`sender_province` varchar(10) DEFAULT '' COMMENT '发件人省',
`sender_city` varchar(20) DEFAULT '' COMMENT '发件人市',
`sender_district` varchar(20) DEFAULT '' COMMENT '发件人区',
`sender_address` varchar(255) DEFAULT '' COMMENT '发件人详细地址',
`receiver_name` varchar(64) NOT NULL DEFAULT '' COMMENT '收件人名字',
`receiver_mobile` varchar(20) DEFAULT '' COMMENT '收件人手机',
`receiver_province` varchar(10) NOT NULL DEFAULT '' COMMENT '收件人省',
`receiver_city` varchar(20) NOT NULL DEFAULT '' COMMENT '收件人市',
`receiver_district` varchar(20) NOT NULL DEFAULT '' COMMENT '收件人区',
`receiver_address` varchar(255) NOT NULL DEFAULT '' COMMENT '收件人详细地址',
`status` tinyint(1) DEFAULT '0' COMMENT '订单状态:\r\n0未发货,1已取消,\r\n2已发货(有单号),3已完成(有单号)',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
`update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测试表';
脚本插入10万条数据。
mysql> SELECT count(*) as cnt FROM tb_orders_10w;
+--------+
| cnt |
+--------+
| 100000 |
+--------+
1 row in set (0.03 sec)
mysql>
需求是要随机返回10个订单的 sender_name 。
[root@iZuf6iv3q5dy5wx3gt2oxuZ ~]# service mysql stop
Shutting down MySQL.... [ OK ]
[root@iZuf6iv3q5dy5wx3gt2oxuZ ~]# ps aux|grep mysql
root 6496 0.0 0.0 103312 872 pts/1 S+ 17:28 0:00 grep mysql
vi /etc/my.cnf
搜索 [mysqld]
栏目下加入一行 skip-grant-tables
客户端发送一条sql给mysql服务器, 经历了连接器、查询缓存、解析器、预处理器、执行器,最后拿到结果返回给客户端。
下面是具体内容:(以下演示基于MySQL5.7.24)