• MySQL 区分大小写问题(库名,表名,字段列名,数据值)
  • 最近在开发建表中,突然想到一个问题,我可以将字段设置成大写吗?MySQL 区分大小写吗?后来做了一番实验,发现区分大小写除了和系统有关,还和你的大小写位置有关。我当前操作系统是 Linux,以下 Linux 的结论我都是亲测过的,windows 结论选自网络,大家可以动手实践下。一、MySQL 库名区分大小写吗这是我的本地库,我想在 weilin_test 库下使用 sys 库再使用 Sys 库(不存在),首字母大写结果不行。结论:Linux 下 库名在 MySQL 中是严格区分大小写的,Win...
  •  2019-04-29  |    程成  |    65  |    0  |    数据库  |   MySQL  大小写  区分  数据库  
  • 项目中常用的19条 MySQL 优化
  • 原文地址:https://segmentfault.com/a/1190000012155267声明一下:下面的优化方案都是基于 “ Mysql-索引-BTree类型 ” 的一、EXPLAIN做MySQL优化,我们要善用 EXPLAIN 查看SQL执行计划。下面来个简单的示例,标注(1,2,3,4,5)我们要重点关注的数据type列,连接类型。一个好的sql语句至少要达到range级别。杜绝出现all级别key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式key_len...
  •  2019-04-09  |    程成  |    79  |    0  |    数据库  |   MySQL  优化  数据库  项目  
  • MySQL 常用两种存储引擎选择 (MyISAM 和 InnoDB)
  • InnoDB和MyISAMInnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为: MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持以及外部键等高级数据库功能。所以从宏观来讲,事务数据库关注细节,而数据仓库关注高层次的聚集,所以,InnoDB更适合作为线上的事务处理,而MyISAM更适合作为ROLA...
  •  2019-02-27  |    程成  |    84  |    1  |    数据库  |   MySQL  存储引擎  MyISAM  InnoDB  
  • MySQL几种存储引擎介绍,以及适用场景
  • 一、存储引擎Isam该引擎在包括MySQL 5.1及其以上版本的数据库中不再支持。该引擎在读取数据方面速度很快,而且不占用大量的内存和存储资源;但是 Isam 不支持事务处理、不支持外键、不能够容错、也不支持索引。Berkeley该引擎在包括MySQL 5.1及其以上版本的数据库中不再支持。该存储引擎支持COMMIT和ROLLBACK等事务特性。CSV使用该引擎的MySQL数据库表会在MySQL安装目录data文件夹中的和该表所在数据库名相同的目录中生成一个.CSV文件(所以,它可以将CSV类型...
  •  2019-02-27  |    程成  |    132  |    0  |    数据库  |   MySQL  存储引擎  数据库  
  • MySQL 外键约束 FOREIGN_KEY_CHECKS 启动和关闭
  • 当我导出表时,看见了下面两句SQL,明显 FOREIGN_KEY_CHECKS 是外键校验的意思。SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; ---------------------这里是你的SQL语句----------------------- SET FOREIGN_KEY_CHECKS = 1;但是为什么要先关闭外键约束,再开启外键约束。是因...
  •  2019-02-27  |    程成  |    157  |    0  |    数据库  |   外键  MySQL  数据库  
  • MySQL 主要使用的几种索引
  • 一、索引定义MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。实际上,索引也是一张表,该表保存了主键与...
  •  2019-02-26  |    程成  |    160  |    0  |    数据库  |   MySQL  索引  数据库  优化  
  • MySQL 中 int(11) 代表什么意思
  • 一、前言在工作中经常要与mysql打交道,但是对mysql的各个字段类型一直都是一知半解,因此写本文总结记录一番。二、简介对于int类型的一些基础知识其实上图已经说的很明白了,在这里想讨论下常用的int(11)代表什么意思,很长时间以来我都以为这代表着限制int的长度为11位,直到有天看到篇文章才明白,11代表的并不是长度,而是字符的显示宽度,在字段类型为int时,无论你显示宽度设置为多少,int类型能存储的最大值和最小值永远都是固定的,这里贴一些原文片段The number in the pa...
  •  2019-02-13  |    程成  |    107  |    0  |    数据库  |   MySQL  int  整型  数据库  
  • MySQL error 1093 报错 解决方法
  • 今天要删除一批数据,大致意思是,删除表 A 数据,这些数据在表 A 存在,但是不在表 B 出现的数据,表 A 数据是表 B 数据父类。结果在执行 SQL 时报出 1093 错误,SQL 如下:DELETE FROM 主表 WHERE id IN ( SELECT cpxh.id AS cpxh_id FROM 表1 AS a LEFT JOIN ...
  •  2018-06-26  |    程成  |    499  |    1  |    数据库  |   MySQL  报错  1093  delete  
  • Windows 解决 Mysql 不是内部或者外部命令
  • 在 CMD 中执行 mysql 命令时,经常会报出:“mysql 不是内部或外部命令,也不是可运行的程序或批处理文件。”【解决方法】:1、右击【我的电脑】-【属性】2、点击【高级系统设置】3、点击【高级】-【环境变量】4、找到【PATH】,在【变量值】后面添加【你的 Mysql 安装的目录中找到bin目录】的地址。我的是“D:\phpStudy\MySQL\bin”5、重启你的 CMD 窗口,然后执行“mysql -u root -p”,然后再输入你的密码,就可以进入到 Mysql 了。至此,你...
  •  2018-05-10  |    程成  |    595  |    1  |    数据库  |   MySQL  Windows  命令  数据库  
  • Windows解决Mysql错误1862:your password has expired
  • 当我和往常一样登录 Mysql 时,报了如下一段错误信息:“Your password has expired. To log in you must change it using a client that supports expired passwords.”。中文的意思是:“您的密码已过期。 要登录,您必须使用支持过期密码的客户端进行更改。”原因:Mysql采用了密码过期策略,默认是90天过期。从MySQL 5.7.4版开始,用户的密码过期时间这个特性得以改进,可以通过一个全局变量de...
  •  2018-05-10  |    程成  |    666  |    0  |    数据库  |   MySQL  Windows  数据库  
  • SQL中直接执行 COUNT() 和 SELECT 出来再统计哪个性能好
  • 写 SQL 时,我一直认为直接执行 select count(id) 的性能不好,没有先 select 所有的条数,再通过 count(条数) 的性能优秀,但是最近的一次遭遇改变了我这个错误的想法。首先是一张30万数据的表,我通过先 select 所有再 count(条数) 的方法执行然后执行就报错内存溢出的错误了(如何解决内存溢出可以看这里【点击】)但是我用执行 select count(id) 的方法得到下面结果(执行时间1174ms):可见,select count(id) 比 先一起 s...
  •  2018-01-22  |    程成  |    619  |    0  |    数据库  |   SQL  count  性能  select  统计  数据库