• MySQL 常用两种存储引擎选择 (MyISAM 和 InnoDB)
  • InnoDB和MyISAMInnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为: MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持以及外部键等高级数据库功能。所以从宏观来讲,事务数据库关注细节,而数据仓库关注高层次的聚集,所以,InnoDB更适合作为线上的事务处理,而MyISAM更适合作为ROLA...
  •  2019-02-27  |    程成  |    36  |    0  |    数据库  |   MySQL  存储引擎  MyISAM  InnoDB  
  • MySQL几种存储引擎介绍,以及适用场景
  • 一、存储引擎Isam该引擎在包括MySQL 5.1及其以上版本的数据库中不再支持。该引擎在读取数据方面速度很快,而且不占用大量的内存和存储资源;但是 Isam 不支持事务处理、不支持外键、不能够容错、也不支持索引。Berkeley该引擎在包括MySQL 5.1及其以上版本的数据库中不再支持。该存储引擎支持COMMIT和ROLLBACK等事务特性。CSV使用该引擎的MySQL数据库表会在MySQL安装目录data文件夹中的和该表所在数据库名相同的目录中生成一个.CSV文件(所以,它可以将CSV类型...
  •  2019-02-27  |    程成  |    44  |    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  |    程成  |    54  |    0  |    数据库  |   外键  MySQL  数据库  
  • MySQL 主要使用的几种索引
  • 一、索引定义MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。实际上,索引也是一张表,该表保存了主键与...
  •  2019-02-26  |    程成  |    59  |    0  |    数据库  |   MySQL  索引  数据库  优化  
  • Redis 持久化存储(AOF/Snapshot)
  • Redis中数据存储模式有2种:cache-only,persistence;cache-only即只做为“缓存”服务,不持久数据,数据在服务终止后将消失,此模式下也将不存在“数据恢复”的手段,是一种安全性低/效率高/容易扩展的方式;persistence即为缓存中的数据持久备份到磁盘文件,在服务重启后可以恢复,此模式下数据相对安全。     持久化数据的方式很多,基于各种考虑面,可能最终导致的设计手段有所差异。针对互联网应用,服务提供者必须具备并发访问/数据安全/...
  •  2019-02-18  |    程成  |    57  |    0  |    数据库  |   Redis  持久化  AOF  Snapshot  
  • 什么是数据库?什么是关系型数据库?什么是非关系型数据库?
  • 本文内容:什么是数据库什么是关系数据库什么是非关系型数据库  PS:虽然这些东西都是一些比较基础常识的东西,但为了记录自己的学习之路,也为了为以后的一些突发奇想留下“坑”,所以写下了这篇博文。什么是数据库? 数据库是数据的仓库。与普通的“数据仓库”不同的是,数据库依据“数据结构”来组织数据,因为“数据结构”,所以我们看到的数据是比较“条理化”的(比如不会跟以前的普通文件存储式存储成一个文件那么不条理化,我们的数据库分成一个个库,分成一个个表,分成一条条记录,这些记录...
  •  2019-02-14  |    程成  |    44  |    0  |    数据库  |   数据库  关系型  SQL  
  • MySQL 中 int(11) 代表什么意思
  • 一、前言在工作中经常要与mysql打交道,但是对mysql的各个字段类型一直都是一知半解,因此写本文总结记录一番。二、简介对于int类型的一些基础知识其实上图已经说的很明白了,在这里想讨论下常用的int(11)代表什么意思,很长时间以来我都以为这代表着限制int的长度为11位,直到有天看到篇文章才明白,11代表的并不是长度,而是字符的显示宽度,在字段类型为int时,无论你显示宽度设置为多少,int类型能存储的最大值和最小值永远都是固定的,这里贴一些原文片段The number in the pa...
  •  2019-02-13  |    程成  |    54  |    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  |    程成  |    427  |    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  |    程成  |    516  |    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  |    程成  |    575  |    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  |    程成  |    546  |    0  |    数据库  |   SQL  count  性能  select  统计  数据库