MyISAM

MySQL(笔记)

杀马特。学长 韩版系。学妹 提交于 2020-12-30 11:34:28
数据库总览 有时候查的数据错乱,可以重启MySQL 关系型数据库 ( SQL ) MySQL , Oracle , SQL Server , SQLite , DB2 , … 关系型数据库通过外键关联来建立表与表之间的关系 非关系型数据库 ( NOSQL )not only Redis , MongoDB , … 非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定 DBMS 数据库管理系统 ( D ata B ase M anagement S ystem ) 数据库管理软件 , 科学组织和存储数据 , 高效地获取和维护数据 MySQL应该算是一个数据库管理系统. 特点 : 免费 , 开源数据库 小巧 , 功能齐全 使用便捷 可运行于Windows或Linux操作系统 可适用于中小型甚至大型网站应用 官网 : https://www.mysql.com/ 安装步骤 1、下载后得到zip压缩包. 2、解压到自己想要安装到的目录,本人解压到的是D:\Environment\mysql-5.7.19 3、添加环境变量:我的电脑->属性->高级->环境变量 选择PATH,在其后面添加: 你的mysql 安装文件下面的bin文件夹 4、编辑 my.ini 文件 ,注意替换路径位置 [mysqld] basedir=D:\Program Files

2020年MySQL数据库面试题总结(50道题含答案解析)

独自空忆成欢 提交于 2020-12-30 10:08:51
开源Linux 长按二维码加关注~ 上一篇: 收藏:详解交换机基础知识 1、MySQL 中有哪几种锁? (1)表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最 高,并发度最低。 (2)行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最 低,并发度也最高。 (3)页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表 锁和行锁之间,并发度一般。 2、MySQL 中有哪些不同的表格? 共有 5 种类型的表格: (1)MyISAM (2)Heap (3)Merge (4)INNODB (5)ISAM 3、简述在 MySQL 数据库中 MyISAM 和 InnoDB 的区别 MyISAM: (1)不支持事务,但是每次查询都是原子的; (2)支持表级锁,即每次操作是对整个表加锁; (3)存储表的总行数; (4)一个 MYISAM 表有三个文件:索引文件、表结构文件、数据文件; (5)采用非聚集索引,索引文件的数据域存储指向数据文件的指针。辅索引与主索引基本一致,但是辅索引不用保证唯一性。 InnoDb: (1)支持 ACID 的事务,支持事务的四种隔离级别; (2)支持行级锁及外键约束:因此可以支持写并发; (3)不存储总行数: (4)一个 InnoDb 引擎存储在一个文件空间(共享表空间,表大小不受操作系统控制,一个表可能分布在多个文件里

2020年MySQL数据库面试题总结(50道题含答案解析)

醉酒当歌 提交于 2020-12-30 10:08:36
1、MySQL 中有哪几种锁? (1)表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最 高,并发度最低。 (2)行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最 低,并发度也最高。 (3)页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表 锁和行锁之间,并发度一般。 2、MySQL 中有哪些不同的表格? 共有 5 种类型的表格: (1)MyISAM (2)Heap (3)Merge (4)INNODB (5)ISAM 3、简述在 MySQL 数据库中 MyISAM 和 InnoDB 的区别 MyISAM: (1)不支持事务,但是每次查询都是原子的; (2)支持表级锁,即每次操作是对整个表加锁; (3)存储表的总行数; (4)一个 MYISAM 表有三个文件:索引文件、表结构文件、数据文件; (5)采用菲聚集索引,索引文件的数据域存储指向数据文件的指针。辅索引与主索引基本一致,但是辅索引不用保证唯一性。 InnoDb: (1)支持 ACID 的事务,支持事务的四种隔离级别; (2)支持行级锁及外键约束:因此可以支持写并发; (3)不存储总行数: (4)一个 InnoDb 引擎存储在一个文件空间(共享表空间,表大小不受操作系统控制,一个表可能分布在多个文件里),也有可能为多个(设置为独立表空,表大小受操作系统文件大小限制,一般为

2020年度总结了这 50 道 MySQL 高频面试题!

那年仲夏 提交于 2020-12-30 09:01:16
1、一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15 ? 2、Mysql的技术特点是什么? Mysql数据库 软件是一个客户端或服务器系统,其中包括:支持各种客户端程序和库的多线程SQL服务器、不同的后端、广泛的应用程序编程接口和管理工具。 3、Heap表是什么? HEAP表存在于内存中,用于临时高速存储。 BLOB或TEXT字段是不允许的 只能使用比较运算符=,<,>,=>,= < HEAP表不支持AUTO_INCREMENT 索引不可为NULL 4、Mysql服务器默认端口是什么? Mysql 服务器的默认端口是3306。 5、与Oracle相比,Mysql有什么优势? Mysql是开源软件,随时可用,无需付费。 Mysql是便携式的 带有命令提示符的GUI。 使用Mysql查询浏览器支持管理 6、如何区分FLOAT和DOUBLE? 以下是FLOAT和DOUBLE的区别: 浮点数以8位精度存储在FLOAT中,并且有四个字节。 浮点数存储在DOUBLE中,精度为18位,有八个字节。 7、区分CHAR_LENGTH和LENGTH? CHAR_LENGTH是字符数,而LENGTH是字节数。Latin字符的这两个数据是相同的,但是对于Unicode和其他编码,它们是不同的

delete、truncate、drop,千万别用错了。。

耗尽温柔 提交于 2020-12-29 15:53:51
上周同事小姐姐问我:“哈哥你看,我发现MySQL有bug,我下午为了清理磁盘,明明删除了100万条MySQL数据,磁盘不仅没有变小,反而更满了呢??” 那你是怎么删除的? “delete from table 呀” “怪不得,其实要删除MySQL数据是有好几种方式的,有些场景下是不应该用DELETE的,比如你这种情况。好了,让我来给你讲一下吧。” MySQL删除数据的方式都有哪些? 咱们常用的三种删除方式:通过 delete、truncate、drop 关键字进行删除;这三种都可以用来删除数据,但场景不同。 一、从执行速度上来说 drop > truncate >> DELETE 二、从原理上讲 1、DELETE DELETE from TABLE_NAME where xxx 1、DELETE属于数据库DML操作语言,只删除数据不删除表的结构,会走事务,执行时会触发trigger; 2、在 InnoDB 中,DELETE其实并不会真的把数据删除,mysql 实际上只是给删除的数据打了个标记为已删除,因此 delete 删除表中的数据时,表文件在磁盘上所占空间不会变小,存储空间不会被释放,只是把删除的数据行设置为不可见。虽然未释放磁盘空间,但是下次插入数据的时候,仍然可以重用这部分空间(重用 → 覆盖)。 3、DELETE执行时,会先将所删除数据缓存到rollback

php面试专题---15、MySQL数据库基础考察点

会有一股神秘感。 提交于 2020-12-29 10:54:10
php面试专题---15、MySQL数据库基础考察点 一、总结 一句话总结: 注意:只写精品 1、mysql定义int(3),那么我存1234就错了么? 不是:无影响:只会影响显示字符的个数:可以为整数类型指定宽度,例如:INT(11)、对大多数应用是没有意义的,它不会限制值的合法范围,只会影响显示字符的个数 int(3)的意义:如果我们是12,又设置了zerofill,那么mysql自动为我们填充为012 2、mysql中FLOAT、DOUBLE、DECIMAL注意 ? 1、DECIMAL可存储比BIGINT还大的整数;可以用于存储精确的小数 2、FLOAT和DOUBLE类型支持使用标准的浮点进行近似计算:比DECIMAL效率高 3、varchar存储实质? 额外字节记录长度:VARCHAR使用1或2个额外字节记录字符串的长度,列长度小于255字节,使用1个字节表示,否则用2个 截断:VARCHAR长度,如果存储内容超出指定长度,会被截断 4、char使用注意? 空格填充比较:CHAR会根据需要采用空格进行填充以方便比较 截断:CHAR长度,超出设定的长度,会被截断 CHAR是定长的,根据定义的字符串长度分配足够的空间 空格填充比较:CHAR会根据需要采用空格进行填充以方便比较 CHAR适合存储很短的字符串,或者所有值都接近同一个长度 截断:CHAR长度,超出设定的长度,会被截断

顺丰快递:请签收MySQL灵魂十连

*爱你&永不变心* 提交于 2020-12-25 13:55:31
攻击性不大,侮辱性极强 1、SQL语句执行流程 MySQL大体上可分为 Server层 和 存储引擎层 两部分。 Server层: 连接器 :TCP握手后服务器来验证登陆用户身份,A用户创建连接后,管理员对A用户权限修改了也不会影响到已经创建的链接权限,必须重新登陆。 查询缓存 :查询后的结果存储位置,MySQL8.0版本以后已经取消,因为查询缓存失效太频繁,得不偿失。 分析器 :根据语法规则,判断你输入的这个SQL语句是否满足MySQL语法。 优化器 :多种执行策略可实现目标,系统自动选择最优进行执行。 执行器 :判断是否有权限,将最终任务提交到存储引擎。 存储引擎层 负责数据的存储和提取。其架构模式是 插件式 的,支持 InnoDB 、 MyISAM 、 Memory 等多个存储引擎。现在最常用的存储引擎是 InnoDB ,它从MySQL 5.5.5版本开始成为了默认存储引擎(经常用的也是这个)。 SQL执行顺序 2、BinLog、RedoLog、UndoLog BinLog BinLog 是记录所有数据库表结构变更(例如create、alter table)以及表数据修改(insert、update、delete)的二进制日志,主从数据库同步用到的都是BinLog文件。BinLog日志文件有三种模式。 STATEMENT 模式 内容 :binlog 只会记录可能引起数据变更的

顺丰快递:请签收MySQL灵魂十连

99封情书 提交于 2020-12-25 13:32:52
Python实战社群 Java实战社群 长按识别下方二维码, 按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群 ▲ 作者丨sowhat1412 来源丨sowhat1412(ID:sowhat9094) 攻击性不大,侮辱性极强 1、SQL语句执行流程 MySQL大体上可分为 Server层 和 存储引擎层 两部分。 Server层: 连接器 :TCP握手后服务器来验证登陆用户身份,A用户创建连接后,管理员对A用户权限修改了也不会影响到已经创建的链接权限,必须重新登陆。 查询缓存 :查询后的结果存储位置,MySQL8.0版本以后已经取消,因为查询缓存失效太频繁,得不偿失。 分析器 :根据语法规则,判断你输入的这个SQL语句是否满足MySQL语法。 优化器 :多种执行策略可实现目标,系统自动选择最优进行执行。 执行器 :判断是否有权限,将最终任务提交到存储引擎。 存储引擎层 负责数据的存储和提取。其架构模式是 插件式 的,支持 InnoDB 、 MyISAM 、 Memory 等多个存储引擎。现在最常用的存储引擎是 InnoDB ,它从MySQL 5.5.5版本开始成为了默认存储引擎(经常用的也是这个)。 SQL执行顺序 2、BinLog、RedoLog、UndoLog BinLog BinLog 是记录所有数据库表结构变更(例如create

MySQL实战学习之入门基础,夯实你的底层知识,构筑上层建筑

醉酒当歌 提交于 2020-12-23 18:38:15
  MySQL是一个开放源代码的数据库管理系统(DBMS), 它是由MySQL AB公司开发、发布并支持的。MySQL是一个跨平台的开源关系型数据库管理系统,广泛地应用在Internet上的中小型网站开发中。今天往后咱们每天更新介绍数据库的基础知识,由浅及深的学习MySQL,希望大家能够对MySQL有更深的认识。   数据库基础   数据库由一批数据构成有序的集合,这些数据被存放在结构化的数据表里。数据表之间相互关联,反映了客观事物间的本质联系。数据库系统提供对数据的安全控制和完整性控制。下面将介绍数据库中的一些基本概念,包括:数据库的定义、数据表的定义和数据类型等。   数据库的特点包括:   实现数据共享,减少数据冗余   采用特定的数据类型   具有较高的数据独立性,具有统一的数据控制功能   表   在关系数据库中,数据库表是一系列二维数组的集合,用来存储数据和操作数据的逻辑结构。它由纵向的列和横向的行组成,行被称为记录,是组织数据的单位;列被称为字段,每一列表示记录的一个属性,都有相应的描述信息,如数据类型、数据宽度等。   例如一个有关作者信息的名为authors的表中,每个列包含所有作者的某个特定类型的信息,比如“姓名”,而每行则包含了某个特定作者的所有信息:编号、姓名、性别、专业。   数据类型   数据类型决定了数据在计算机中的存储格式,代表不同的信息类型

MySQL-----锁(行锁、表锁、页锁、乐观锁、悲观锁)

人盡茶涼 提交于 2020-12-23 03:34:27
回顾: ACID :DBMS在写入或更新资料的过程中,为保证事务正确可靠,具有的四个特性:原子性(不可分割性)、一致性、隔离性(独立性)、持久性 一个事务 :一系列数据库操作组成的一个完整的逻辑过程 原子性 :一个事务中的所有操作,要么全部完成、要么全部不完成,若发生错误,回滚(RollBack) 一致性 :事务开始之前和事务结束之后,数据库的完整性没有破坏 隔离性 :数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不 同级别 :读未提交、读提交、可重复读、串行化 持久性 :事务处理结束后,对数据的修改时永久性的,系统出故障也不会改变 锁 :协调多个进程或线程并发访问某一资源的一种机制.锁冲突是影响数据库并发访问性能的重要因素。 存储引擎支持不同的锁机制 行锁 表锁 页锁 MyISAM 支持 BDB 支持 支持 InnoDB 支持 支持 开销、加锁速度、死锁、粒度、并发性能 行锁 :开销大,加锁慢,会出现死锁;锁定粒度小,锁冲突概率小,并发度高 表锁 :开销小,加锁快,不会出现死锁;锁定粒度大,发生锁冲突概率高,并发度最低 页锁 :开销和加锁速度介于行锁和表锁之间,会出现死锁;锁粒度介于表锁和行锁之间,并发度一般 ###根据具体应用决定适合那种锁,仅从锁的角度:表锁适合以查询为主