MySQL数据库基础(一)

关于MySQL的介绍,我就不啰嗦了,直接从sql语句开始,介绍相关概念。

从写sql语句到按下回车,经历了什么?

  • SQL由API接收请求
  • SQL解析器解析请求(判断语法等问题)
  • SQL优化器(制定执行计划)
  • 执行计划,从缓冲区查询(若有,通过API返回给用户,否则从磁盘(存储引擎)中读取)
  • 日志记录行为。

接下来说说存储引擎
存储引擎就是对底层数据的一种读写操作的封装,可以用show engines 这个语句查看存储引擎,这里主要说MyISAM 、InnoDB、MEMORY、ARCHIVE这四个存储引擎。对其中的一些名词在后面解释。

  • MyISAM,这个存储引擎支持全文索引,不支持外键,以B+树这种结构建立索引,支持表锁,不支持事务。特点是对于在线分析处理操作速度较快.

  • InnoDB,这个存储引擎不支持全文索引,支持外键,以B+树建立索引,支持行锁,支持事务,索引属于聚集索引。

  • MEMORY,这个存储引擎将数据存储于内存中,默认哈希索引,会把varchar当成char类型处理,缺点是,数据不安全,比如突然断电,内存中的数据直接丢失。不支持text字段,BLOB字段。处理数据方式:从磁盘中提取字段,如果这几个字段中由text、BLOB类型,那么交给MyISAM处理,这样就会导致部分数据在磁盘,部分数据在内存中,处理的效率还不如MyISAM。

  • ARCHIVE,压缩存储引擎(也叫归档存储引擎),默认1:10压缩,只支持插入和查询操作,不支持删除和修改操作。适用于数据量大,查询少的数据(比如日志数据)。

名词解释
全文索引:一种特殊类型的索引,查找文本中的关键词,而非比较索引值。MySQL5.6以后MyISAM和InnoDB支持。只有字段的数据类型为char、carchar、text才能建立全文索引。

主键:唯一标识表中每行的这个列称为主键(不允许重复)。并不是必须的,但是没有主键不便于数据库的管理。
外键:一张表中有一个非主键的字段指向了别一张表中的主键,就将该字段叫做外键。
B+树:一种多路树,这里不过多介绍。
行锁:防止多个进程对同一张表中的同一行进行读写操作。(允许同时读)
表锁:防止多个进程对同一张表进行读写操作。(允许同时读)
事务:一组sql语句的集合

MySQL中的数据类型:常用的有int(四字节),float(单精度浮点4),double(双精度浮点8),时间类型date,time,字符串类型char(定长字符串),varchar(变长字符串)、blob(二级制的长文本数据)、text(长文本数据)。

事务的特性:原子性、一致性、隔离性、持久性。

  • 原子性:事务执行过程中,不能中断(要么成功、要么失败)
  • 一致性:保证操作前后的主键不能重复
  • 隔离性:消除事务间的互相影响
  • 持久性:保证事务执行的结果在磁盘上永久储存
    锁:并发处理保证完整性

索引:数据结构(基于字段建立),提高查询效率

  • MyISAM:B+树(将数据的地址存放于叶子结点),将数据和索引分开存储。myd存放数据,myi存放索引。
  • InnoDNB:B+树(叶子结点直接存放数据),将数据和索引存放到一起,属于聚集索引,一定要有索引,若创建时没有给出索引,系统会创建索引。

系统创建索引规则:

	有主键:按照主键建立索引,该索引为主索引
	没有主键,有唯一键,按照唯一键建立索引,该索引为主索引
	既没有主键,也没有唯一键,添加隐藏字段,6字节,并以该字段建立索引,该索引为主索引。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值