MySQL查询语句中的IN 和Exists 对比分析

  • Post author:
  • Post category:mysql

背景介绍 最近在写SQL语句时,对选择IN 还是Exists 犹豫不决,于是把两种方法的SQL都写出来对比一下执行效率,发现IN的查询效率比Exists高了很多,于是想当然的认为IN的效率比Exists好,但本着寻根究底的原则,我想知道这个结论是否适用所有场景,以及为什么会出现这个结果。 网上查了一下相关资料,大体可以归纳为:外部表小,内部表大时,适用Exists;外部表大,内部表小时,适用IN。…

继续阅读 MySQL查询语句中的IN 和Exists 对比分析

MySQL索引的设计原则

  • Post author:
  • Post category:mysql

索引的设计可以遵循一些已有的原则,创建索引的时候应尽量考虑符合这些原则,便于提升索引的使用效率,更高效的使用索引。本节将介绍一些索引的设计原则。 选择唯一性索引 唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录。例如,学生表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的确定某个学生的信息。如果使用姓名的话,可能存在同名现象,从而降低查询速度。 为经常需要排序、分组和联合操作…

继续阅读 MySQL索引的设计原则

mysql中数据类型优化

  • Post author:
  • Post category:mysql

基本原则 更小的通常更好 简单就好(内置类型) 尽量避免null 常见的类型 VARCHAR 使用额外的1-2个字节记录字符串的长度 枚举类型代替字符串类型 日期和时间类型 IP地址,无符号整数 关联条件中的列使用相同的数据类型 范式和反范式 在范式化数据库中,每个事实数据会出现并且只会出现一次 在反范式化数据库中,信息是冗余的,可能会存储在多个地方 版权声明:本文为u013421874原创文章,…

继续阅读 mysql中数据类型优化

MySQL数据库引擎详解

  • Post author:
  • Post category:mysql

作为经常使用MySQL数据库的人,不得不对MySQL的数据库引擎有一定的了解,在之前我也是只会使用MySQL,但两次的面试中都被面试官问及项目用到的数据库引擎(血与泪),因此,有必要写一篇文章,好好总结一下MySQL的数据库引擎。 1. 数据库引擎定义 数据库引擎是数据库用于存储、处理和保护数据的核心服务,不同的数据库引擎有其各自的特点,如存储机制、索引技巧、主键的处理、锁的粒度等特点便随着引擎的…

继续阅读 MySQL数据库引擎详解

MySQL导入数据报错1067 – Invalid default value for 字段名

  • Post author:
  • Post category:mysql

MySQL导入问题: 报错1067 - Invalid default value for 字段名 由于数据库版本升级,老数据库的数据文件导出以后,在新版本的数据库上执行会报错 这种问题多是由于默认值不兼容引起的,我们可以通过修改sql_mode来解决这个问题 由于我是docker部署的mysql,所以得在Liunx下来执行以下命令: docker ps ——查看docker运行的容器 (查看my…

继续阅读 MySQL导入数据报错1067 – Invalid default value for 字段名

mysql调优经验总结

  • Post author:
  • Post category:mysql

为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存。这是提高性能最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结果了。 这里最主要的问题是,对于程序员来说,这个事情是很容易被忽略的。因为,我们某些查询语句会让MySQL不使用缓存。请看下面的示例: // 查…

继续阅读 mysql调优经验总结

mysql左连接and条件_SQL中左连接on and条件和where条件执行先后顺序

  • Post author:
  • Post category:mysql

执行顺序:先执行on and条件,再执行where条件 具体是:首先根据on and条件过滤出满足条件的右侧表记录,然后根据关联字段,左侧表再与过滤出的右侧表记录进行连接, 满足关联字段相等,则返回左侧表和右侧表字段信息;若不满足,则返回左侧表字段信息,右侧表字段则显示NULL。 连接出的结果则存入临时表中。最后where条件是对临时表中的数据进行过滤。 左连接:Left join,以左侧表为主,…

继续阅读 mysql左连接and条件_SQL中左连接on and条件和where条件执行先后顺序

MySQL基础

  • Post author:
  • Post category:mysql

一、MySQL概述 1、什么是数据库 ? 答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其为数据库 2、什么是 MySQL、Oracle、SQLite、Access、MS SQL Server等 ? 答:他们均是一个软件,都有两个主要的功能: a. 将数据保存到文件或内存 b. 接收特定的命令,然后对文件进行相应的操作 3、什么是SQL ? 答:MySQL等软件可以接受命令,并…

继续阅读 MySQL基础

springboot整合mybatis批量插入数据至Mysql

  • Post author:
  • Post category:mysql

xml中sql语句如下: <insert id="batchAdd" parameterType="java.util.List"> insert into CW_PER_CON_TEMPLATES_COLS(ID, TEMPLATE_ID, CONDITON_NAME, LABEL_CODE, OPERATION, CONDITION_VALUE, SORT, SYSTEM_ID, …

继续阅读 springboot整合mybatis批量插入数据至Mysql

如何在一台机器上(windows)安装两个MYSQL数据库

  • Post author:
  • Post category:mysql

如何在一台机器上(windows)安装两个MYSQL数据库 前言: 本地安装的是mysql-8.0.22版本,由于某个项目变更,需要将8.0版本降到5.6。但为了不影响其他项目运行使用,不得不在同一台机器上安装两个版本mysql。本机以mysql5.6.40、mysql8.0.22为例,讲述同一台机器上安装两个mysql数据库的具体操作步骤。具体如下: 官网下载安装包(解压版本) 下载地址: ht…

继续阅读 如何在一台机器上(windows)安装两个MYSQL数据库