MyISAM

mysql补充

落花浮王杯 提交于 2019-11-29 00:31:35
mysql补充 mysql使用流程 开启服务端,mysqld或者net start mysql cmd下键入mysql -u root -p,输入设置好的密码,连接mysql客户端 show databases;展示所有的mysql仓库 创建一个库:create database CRM;然后show databases; 切换数据库使用use + 库名,例如:use crm; 在切换仓库下创建一张表,命令:create table student(id int,name char(10),age int); 再执行show tables;就可以看到有了一个student表 查看一下这个表里的数据select * from student; 接下来正常执行表的增删查改操作即可 mysql目录介绍 总结:其实这些库就是我们电脑上对应的文件夹,在mysql中显示为对应的库,来方便我们管理数据,而文件或者文件夹这种与硬盘打交道的事情就交给mysql了,我们只需要对mysql库中的数据进行操作就可以了 指令补充 show variables like "%char%"; # 查看字符集编码指令 mysql -h 127.0.0.1 -P 3306 -u root -p # MySQL客户端连接服务端时的完整指令 show variables like "storage_engine%";

mysql储存引擎

浪尽此生 提交于 2019-11-28 23:56:45
1.储存引擎解释 首先确定一点,存储引擎的概念是MySQL里面才有的,不是所有的关系型数据库都有存储引擎这个概念,后面我们还会说,但是现在要确定这一点。     在讲清楚什么是存储引擎之前,我们先来个比喻,我们都知道录制一个视频文件,可以转换成不同的格式,例如mp4,avi,wmv等,而存在我们电脑的磁盘上也会存在于不同类型的文件系统中如windows里常见的ntfs、fat32,存在于linux里常见的ext3,ext4,xfs,但是,给我们或者用户看懂实际视频内容都是一样的。直观区别是,占用系统的空间大小与清晰程度可能不一样。 那么数据库表里的数据存储在数据库里及磁盘上和上述的视频格式及存储磁盘文件的系统格式特征类似,也有很多种存储方式。   但是对于用户和应用程序来说同样一张表的数据,无论用什么引擎来存储,用户能够看到的数据是一样的。不同储引擎存取,引擎功能,占用空间大小,读取性能等可能有区别。说白了,存储引擎就是在如何存储数据、提取数据、更新数据等技术方法的实现上,底层的实现方式不同,那么就会呈现出不同存储引擎有着一些自己独有的特点和功能,对应着不同的存取机制。   因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即:对表的存储、操作等的实现方法不同),表是什么,表本质上就是磁盘上的文件。   其实MySQL支持多种存储引擎

数据库内功心法:数据库基本理论

核能气质少年 提交于 2019-11-28 22:27:02
1、数据库范式 第一范式:列不可分,eg:【联系人】(姓名,性别,电话),一个联系人有家庭电话和公司电话,那么这种表结构设计就没有达到 1NF; 第二范式:有主键,保证完全依赖。eg:订单明细表【OrderDetail】(OrderID,ProductID,UnitPrice,Discount,Quantity,ProductName),Discount(折扣),Quantity(数量)完全依赖(取决)于主键(OderID,ProductID),而 UnitPrice,ProductName 只依赖于 ProductID,不符合2NF; 第三范式:无传递依赖(非主键列 A 依赖于非主键列 B,非主键列 B 依赖于主键的情况),eg:订单表【Order】(OrderID,OrderDate,CustomerID,CustomerName,CustomerAddr,CustomerCity)主键是(OrderID),CustomerName,CustomerAddr,CustomerCity 直接依赖的是 CustomerID(非主键列),而不是直接依赖于主键,它是通过传递才依赖于主键,所以不符合 3NF。 2、什么是反模式 范式可以避免数据冗余,减少数据库的空间,减轻维护数据完整性的麻烦。 然而,通过数据库范式化设计,将导致数据库业务涉及的表变多

MySQL存储引擎介绍

拟墨画扇 提交于 2019-11-28 22:23:55
目录 一 存储引擎解释 二 MySQL存储引擎分类 三 存储引擎的使用 一 存储引擎解释   首先确定一点,存储引擎的概念是MySQL里面才有的,不是所有的关系型数据库都有存储引擎这个概念,后面我们还会说,但是现在要确定这一点。     在讲清楚什么是存储引擎之前,我们先来个比喻,我们都知道录制一个视频文件,可以转换成不同的格式,例如mp4,avi,wmv等,而存在我们电脑的磁盘上也会存在于不同类型的文件系统中如windows里常见的ntfs、fat32,存在于linux里常见的ext3,ext4,xfs,但是,给我们或者用户看懂实际视频内容都是一样的。直观区别是,占用系统的空间大小与清晰程度可能不一样。 那么数据库表里的数据存储在数据库里及磁盘上和上述的视频格式及存储磁盘文件的系统格式特征类似,也有很多种存储方式。   但是对于用户和应用程序来说同样一张表的数据,无论用什么引擎来存储,用户能够看到的数据是一样的。不同储引擎存取,引擎功能,占用空间大小,读取性能等可能有区别。说白了,存储引擎就是在如何存储数据、提取数据、更新数据等技术方法的实现上,底层的实现方式不同,那么就会呈现出不同存储引擎有着一些自己独有的特点和功能,对应着不同的存取机制。   因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即:对表的存储、操作等的实现方法不同),表是什么

Mysql优化-索引

假如想象 提交于 2019-11-28 21:49:01
1. 索引的本质   MySQL官方对索引的定义为:索引是帮助MySQL高效获取数据的数据结构。   数据库查询是数据库的最主要功能之一。我们都希望查询数据的速度尽可能的快,因此 数据库系统的设计者会从查询算法的角度进行优化。最基本的查询算法是顺序查找(liner search),这种复杂度为o(n)的算法在数据量大时,速度很慢。但是我们有更优秀的查找算法,例如二分查找(binary search)、二叉树查找(binary tree search)等。如果稍微分析一下会发现,每种查找算法都只能用于特定的数据结构之上,例如二分查找要求被检索数据有序,而二叉查找只能应用于二叉查找树上,但是数据本身的组织结构不可能满足各种数据结构(例如,一般不可能同时将两列都按顺序进行组织),所以在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实训高级查找算法。这种数据结构,就是索引。   为了加快查询速度,可以维护一个二叉查找树,每个节点分别包含索引键值和一个指向对应数据记录物理地址的指针,这样就可以运用二叉查找在o(logN)的复杂度内获取到相应数据。   虽然这是一个货真价实的索引,但是实际的数据库系统几乎没有使用二叉查找树实现的。。。 二叉排序树   二叉排序树的排序规则如下:   1)若左子树不空

MyISAM 与 InnoDB 区别

蓝咒 提交于 2019-11-28 21:30:10
构成上的区别: 每个MyISAM在磁盘上存储成三个文件。 第一个文件的名字以表的名字开始,扩展名指出文件类型。 .frm文件存储表定义。 数据文件的扩展名为.MYD (MYData)。 索引文件的扩展名是.MYI (MYIndex)。 基于磁盘的资源是InnoDB表空间数据文件和它的日志文件,InnoDB 表的大小只受限于操作系统文件的大小,一般为 2GB 事务处理上方面: MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持 InnoDB提供事务支持事务,外部键等高级数据库功能 SELECT UPDATE,INSERT,Delete操作 如果执行大量的SELECT,MyISAM是更好的选择 1.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表 2.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。 3.LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用 对AUTO_INCREMENT的操作 每表一个AUTO_INCREMEN列的内部处理。 MyISAM为INSERT和UPDATE操作自动更新这一列

InnoDB与Myisam的六大区别

空扰寡人 提交于 2019-11-28 21:29:56
1. 构成上的区别: MyISAM: 每个MyISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。 .frm文件存储表定义。数据文件的扩展名为.MYD (MYData)。索引文件的扩展名是.MYI (MYIndex)。 InnoDB: 基于磁盘的资源是InnoDB表空间数据文件和它的日志文件,InnoDB 表的大小只受限于操作系统文件的大小,一般为2GB 2. 事务处理上方面: MyISAM: MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持 InnoDB: InnoDB提供事务支持事务,外部键等高级数据库功能 3. SELECT UPDATE,INSERT,Delete操作: MyISAM: 如果执行大量的SELECT,MyISAM是更好的选择 InnoDB: 1.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表 2.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。 3.LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用 4. 对AUTO_INCREMENT的操作:

Myisam 与 Innerdb的一些区别

白昼怎懂夜的黑 提交于 2019-11-28 21:29:36
一、事务 MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持; InnoDB提供事务支持事务,外部键等高级数据库功能 二、DML (Data Manipulation Language 数据操作语言) 主要是:SELECT UPDATE,INSERT,Delete操作 如果执行大量的SELECT,MyISAM是更好的选择; InnoDB 1.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表 2.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。 三、对AUTO_INCREMENT的操作 Myisam: 每表一个AUTO_INCREMEN列的内部处理。 MyISAM为INSERT和UPDATE操作自动更新这一列。这使得AUTO_INCREMENT列更快(至少10%)。在序列顶的值被删除之后就不能再利用。(当AUTO_INCREMENT列被定义为多列索引的最后一列,可以出现重使用从序列顶部删除的值的情况)。 AUTO_INCREMENT值可用ALTER TABLE或myisamch来重置 对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引 更好和更快的auto_increment处理

SQL SERVER与mysql 的区别

喜夏-厌秋 提交于 2019-11-28 20:52:16
2010-04-12 09:26:56 | 分类: 寒窗磨剑 | 举报 | 字号 订阅 今天问了一下高手关于数据库的问题, 他的回答是,如果是做网站的话最好是用sqlserver,如果只是做企业内部的系统或者是单机的软件的话用mysql比较合适. "mysql性能是绝对没问题的,只是因为上线的方式大部分都是ms sql server数据库,所以不宜采用其他数据库开发。如果不是的话,mysql比较好。" 下面 是网上找的他们之间的区别 大家可以参考一下 根本的区别是它们遵循的基本原则 二者所遵循的基本原则是它们的主要区别:开放vs保守。SQLServer服务器的狭隘的,保守的存储引擎与MySQL服务器的可扩展,开放的存储引擎绝然不同。虽然你可以使用SQLServer服务器的sybase引擎,但MySQL能够提供更多种的选择,如myisam, heap, innodb, and berkeley db。MySQL不完全支持陌生的关键词,所以它比SQLServer服务器要少一些相关的数据库。同时,MySQL也缺乏一些存储程序的功能,比如myisam引擎联支持交换功能。 发行费用:MySQL不全是免费,但很便宜 当提及发行的费用,这两个产品采用两种绝然不同的决策。对于SQLServer服务器,获取一个免费的开发费用最常的方式是购买微软的office或者visual studio的费用。但是

存储引擎

时光怂恿深爱的人放手 提交于 2019-11-28 19:44:34
存储引擎 存储数据的的方式 # 存储引擎 -- 存储数据的方式 # 一张表 # 数据 # 表的结构 # 索引(查询的时候使用的一个目录结构) # 面试题 # 你了解mysql的存储引擎么? # 你的项目用了什么存储引擎,为什么? # innodb # 多个用户操作的过程中对同一张表的数据同时做修改 # innodb支持行级锁,所以我们使用了这个存储引擎 # 为了适应程序未来的扩展性,扩展新功能的时候可能会用到...,涉及到要维护数据的完整性 # 项目中有一两张xx xx表,之间的外键关系是什么,一张表的修改或者删除比较频繁,怕出错所以做了外键约束 数据的存储方式 -- 存储引擎engines innodb常用 myisam memory 使用不同的存储引擎,数据是以不同的方式存储的 show engines; 查看存储引擎 mysql支持哪些存储引擎? mysql5.6支持的存储引擎包括InnoDB、MyISAM、MEMORY、CSV、BLACKHOLE、FEDERATED、MRG_MYISAM、ARCHIVE、PERFORMANCE_SCHEMA。其中NDB和InnoDB提供事务安全表,其他存储引擎都是非事务安全表。 最常见 Innodb Myisam Memory Innodb存储引擎 创建表的时候 # Innodb存储引擎(印欧db) mysql5.6之后的默认的存储引擎 #