概述mysql_MySQL概述及入门(二)

本文详细介绍了MySQL的架构,包括逻辑架构图和执行流程。重点讲解了MySQL的两大主流存储引擎——InnoDB和MyISAM的特点和应用场景。InnoDB提供事务处理和外键支持,而MyISAM则以快速读取和较小的存储空间为特点。此外,还讨论了MySQL的日志系统,如错误日志、二进制日志、查询日志和慢查询日志的作用。最后,文章阐述了索引的概念、类型和使用,强调了索引对于提升查询速度的重要性。
摘要由CSDN通过智能技术生成

MySql概述及入门(二)

MySQL架构

逻辑架构图:

57a0c9d60d88ce3c42b25c2ec2fc69cd.png

34021ec6427199bf1335d6b92fda8354.png

执行流程图:

e0b4a8bc27c764489dc935ccb137d695.png

4aed1345b68b9c023b872e0bfeacf07a.png

MySQL的存储引擎

查询数据库支持的存储引擎

执行: show engines;

8f372219917c6d73052d56668734fb82.png

多存储引擎是mysql有别于其他数据库的一大特性,存储引擎是针对表的,MySQL 5.5之后,默认的存储引擎由MyISAM变为InnoDB。

InnoDB 引擎:支持AUTO_INCREMENT(自增列),支持外键(FOREIGN KEY),创建的表的表结构存储在.frm文件中,优势在于提供了良好的事务处理、崩溃修复能力和并发控制。缺点是读写效率较差,占用的数据空间相对较大。

MyISAM 引擎: 曾经是MySQL的默认存储引擎,优势在于占用空间小,处理速度快。缺点是不支持事务的完整性和并发性。

MySQL日志文件

MySQL通过日志记录了数据库操作信息和错误信息。常用的日志文件包括错误日志、二进制日志、查询日志、慢查询日志和 InnoDB 引擎在线 Redo 日志等

日志刷新 : mysql> FLUSH LOGS;

shell> mysqladmin flush-logs

shell> mysqladmin refresh

错误日志 : 默认是开启的,而且从5.5.7版本以后无法关闭错误日志,它记录了MariaDB/MySQL服务启动和停止的信息,还记录了mysqld实例运行过程中发生的错误事件信息。

默认的错误日志名称:hostname.err , hostname表示当前的主机名

如果不知道错误日志的位置,可以通过  show variableslike 'log_error';来查看。

错误日志所记录的信息是可以通过log-error和log-warnings来定义的,其中log-error是定义是否启用错误日志的功能和错误日志的存储位置,log-warnings是定义是否将警告信息也定义至错误日志中。

二进制日志 : 以事件形式记录的,不是事务日志(但可能是基于事务来记录二进制日志) 默认是关闭的,需要通过配置:log-bin=mysql-bin进行开启。

其中mysql-bin是binlog日志文件的basename,binlog日志文件的名称:mysql-bin-000001.log

binlog记录了数据库所有的ddl语句和dml语句,但不包括select语句内容

binlog还包括了每个更新语句的执行时间信息,binlog主要作用是用于恢复数据,因此binlog对于s灾难恢复和备份恢复来说至关重要。

查询日志 :   默认情况下查询日志是关闭的。由于查询日志会记录用户的所有操作,其中还包含增删查改等信息,会影响mysql的性能

如若不是为了调试数据库的目的建议不要开启查询日志。

慢查询日志 :默认关闭的,需要通过设置:slow_query_log=ON进行开启

记录执行时间超过long_query_time秒的所有查询,便于收集查询时间比较长的SQL语句

事务日志(redo log) :    InnoDB特有的日志 , 也叫redo日志。

事务日志包括两部分:一是内存中的日志缓冲(redo log buffer),该部分日志是易失性的;二是磁盘上的重做日志文件(redo log file),该部分日志是持久的。

文件名为"ib_logfile0"和“ib_logfile1”,默认存放在表空间所在目录。 还有一个日志文件叫undo 日志,默认存储在ib_data目录下。

MySQL索引

为什么使用索引 : 1 .使用索引的主要目的是为了优化查询速度

2.索引可以帮助我们进行排序以避免以避免使用临时表

3.保证数据的准确性

什么是索引 : 通俗解释 索引就像是图书的目录,根据目录中的页码快速找到所需内容。

索引的类型:

单列索引:

普通索引:仅加速查询 最基本的索引,没有任何限制,允许在定义索引的列中插入重复值和空值 ,是我们大多数情况下使用到的索引。

唯一索引:索引列中的值必须是唯一的,但是允许为空值,

主键索引:是一种特殊的唯一索引,不允许有空值。

组合索引: 将几个列作为一条索引进行检索,使用组合索引时遵循最左前缀集合。

全文索引: 全文索引(FULLTEXT)仅可以适用于MyISAM引擎的数据表;作用于CHAR、VARCHAR、TEXT数据类型的列。

索引的使用:

创建索引:

CREATE INDEX index_nameON table(column(length))

ALTER TABLE table_name ADD INDEX index_name ON (column(length))

CREATE UNIQUE INDEX index_nameON table(column(length))

CREATE FULLTEXTINDEX index_nameON table(column(length))

ALTER TABLE article ADD INDEX index_titme_time(title(50),time(10))

删除索引:

drop index_name on healerjean;

alter TABLE users drop index name_index ;

查看索引:

show index from healerjean;

索引的存储结构

7572adbdcaaf919070d40547d941f65c.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值