mysql写完代码之后的运行方法 mysql是怎样运行的

MySQL 是如何运行的MySQL 的执行流程是这样的:
1、首先客户端先要发送用户信息去服务器端进行授权认证 。
如果使用的是命令行工具,通常需要输入如下信息:
mysql -h 主机名(IP) -u 用户名 -P 端口 -p其中:
-h 表示要连接的数据库服务器的主机名或者 IP 信息;-u 表示数据库的用户名称;-P 表示数据库服务器的端口号,小写的 -p 表示需要输入数据库的密码 。具体使用示例,如下图所示:

mysql写完代码之后的运行方法 mysql是怎样运行的

文章插图
2、当输入正确密码之后可以连接到数据库了 , 如果密码输入错误,则会提示“Access denied for user ‘xxx’@’xxx’ (using password: YES)”密码错误信息,如下图所示:
mysql写完代码之后的运行方法 mysql是怎样运行的

文章插图
3、当连接服务器端成功之后就可以正常的执行 SQL 命令了,MySQL 服务器拿到 SQL 命令之后,会使用 MySQL 的分析器解析 SQL 指令,同时会根据语法分析器验证 SQL 指令,查询 SQL 指令是否满足 MySQL 的语法规则 。如果不支持此语法,则会提示“SQL syntax”语法错误信息 。
4、当分析器验证并解析 SQL 命令之后,会进入优化器阶段,执行生成计划,并设置相应的索引;当上面的这些步骤都执行完之后,就进入了执行器阶段,并开始正式执行 SQL 命令 。同样在执行命令之前,它会先对你的执行命令进行权限查询 , 看看是否有操作某个表的权限 , 如果有相应的权限 , 执行器就去调用 MySQL 数据库引擎提供的接口,执行相应的命令;如果是非查询操作会记录对应的操作日志 , 再命令执行完成之后返回结果给客户端,这就是整个 MySQL 操作的完整流程 。
注意 :如果执行的是 select 语句并且是 MySQL 8.0 之前的版本的话,则会去 MySQL 的查询缓存中查看之前是否有执行过这条 SQL;如果缓存中可以查到,则会直接返回查询结果,这样查询性能就会提升很高 。
流程图如下:
mysql写完代码之后的运行方法 mysql是怎样运行的

文章插图
说一下它有哪些引擎我们可以使用 SHOW ENGINES 命令来查看 MySQL 数据库使用的存储引擎 , 如下图所示:
mysql写完代码之后的运行方法 mysql是怎样运行的

文章插图
常用的数据库引擎有 InnoDB、MyISAM、MEMORY 等,其中 InnoDB 支持事务功能,而 MyISAM 不支持事务,但 MyISAM 拥有较高的插入和查询的速度 。而 MEMORY 是内存型的数据库引擎 , 它会将表中的数据存储到内存中 , 因为它是内存级的数据引擎,因此具备最快速的查询效率,但它的缺点是,重启数据库之后 , 所有数据都会丢失,因为这些数据是存放在内存中的 。
查询缓存的利弊MySQL 8.0 之前可以正常的使用查询缓存的功能,可通过“SHOW GLOBAL VARIABLES LIKE ‘query_cache_type’”命令查询数据库是否开启了查询缓存的功能,它的结果值有以下三项:
1、OFF,关闭了查询缓存功能
2、ON,开启了查询缓存功能;
3、DEMAND,在 sql 语句中指定 sql_cache 关键字才会有查询缓存,也就是说必须使用 sql_cache 才可以把该 select 语句的查询结果缓存起来,比如“select sql_cache name from token where tid=1010”语句 。
开启和关闭查询缓存可以通过修改 MySQL 的配置文件 my.cnf 进行修改,它的配置项如下:
query_cache_type = ON查询缓存的功能要根据实际的情况进行使用 , 建议设置为按需缓存(DEMAND)模式,因为查询缓存的功能并不是那么好用 。比如我们设置了 query_cache_type = ON,当我们好不容易缓存了很多查询语句之后,任何一条对此表的更新操作都会把和这个表关联的所有查询缓存全部清空 , 那么在更新频率相对较高的业务中,查询缓存功能完全是一个鸡肋 。因此,在 MySQL 8.0 的版本中已经完全移除了此功能 , 也就是说在 MySQL 8.0 之后就完全没有查询缓存这个概念和功能了 。


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: