mysql怎么打开

mysql怎么打开,第1张

MySQL的用法如下:

一、准备工作:

1、打开任务管理器,启动MySQL服务(点击开始即可)。

2、打开下载好的连接工具Navicat,选择要连接的数据(MySQL),d出MySQL-新建连接窗口,点击测试连接,出现连接成功,点击确定。

二、新建数据库:

在连接好的MySQL连接上点击右键,选择新建数据库,d出新建数据库窗口后,取数据库名,输入字符集为utf8,输入排序规则为utf8_icelandic_ci,点击确定,即可创建成功。

三、新建数据库表:

在表上点击右键,选择新建表,添加字段,设置标识列(勾选自动递增)。

四、导入数据库表:

准备一张要导入MySQL数据库的表:在表上点击右键,选择运行SQL文件,d出运行SQL文件,选择数据库表的位置,找到你要导入的表,点击开始完成导入,然后关闭即可。再次在表上点击右键,选择刷新,完成表的导入。

五、写sql语句:

点击新建查询,然后选择要连接的数据库和表,即可尽情打代码啦!!!

1.一条查询语句如何执行?

2.一条更新语句如何执行?

3.innodb的redolog是什么?

4.什么是写缓冲

5.写缓冲一定好吗?

6.什么情况会引发刷脏页

关于一条mysql查询语句在mysql中的执行流程

如select name from test where id=10

1.连接器---先与mysql服务端连接器建立连接,若查询缓存命中则直接返回 (查询缓存的弊端:查询缓存的失效非常频繁,只要有对一个表的更新,这个表上所有的查询缓存都会被清空。)

2.分析器---词法分析告诉服务端你要干什么(我要找 test表中id为10的名字) ( 其中sql语法错误在这块暴露 )

3.优化器---服务端会思考该怎么执行最优(索引的选择)

4.执行器---检查用户对库对表的权限

5.存储引擎--存储数据,提供读写接口

以update a set name=1 where id=1

主要区别在于在查询到数据之后(select name from a where id=1),如果是innodb引擎它会进行日志的两阶段提交:

1.开启事务,写入redolog(innodb引擎特有),并更新内存

3.写入binlog,提交事务,commit

我们知道mysql数据存储包含内存与磁盘两个部分,innodb是按数据页(通常为16k)从磁盘读取到内存中的(剩余 *** 作在内存中执行),当要更新数据时,若目标数据的数据页刚好在内存中,则直接更新。不在呢?

将这个更新 *** 作(也可能是插入) 缓存在change buffer中 (redolog也会记录这个change buffer *** 作)等到下一次查询要用到这些数据时,再执行这些 *** 作,改变数据(称为合并 *** 作记录称为merge)。

innodb_change_buffer_max_size

innodb_change_buffering

先介绍两个概念

因为redolog是环形日志,当redolog写满时,就需要“擦掉”开头的一部分数据来达到循环写,这里的擦掉指,指将redolog日志的checkpoint位置从 CP推进到CP‘ ,同时将两点之间的脏页刷到磁盘上(flush *** 作),此时系统要停止所有的更新 *** 作(防止更新 *** 作丢失)

1.系统内存不足。当要读取新的内存页时就要淘汰一些数据页,如果淘汰的正好是脏页,就要执行一次flush *** 作

2.Mysql认为系统处于“空闲状态”

3.正常关闭Mysql

上述后两者场景(系统空闲和正常关闭)对于性能都没太大影响。

当为第一种redolog写满时,系统无法执行更新 *** 作,所有 *** 作都会堵塞

当为第二种内存不够用时,如果淘汰脏页太多,影响mysql响应时间

后两者刷脏页会影响性能,所以Mysql需要有刷脏页控制策略,可以从以下几个设置项考虑

1.设置innodb_io_capacity告诉innodb所在主机的IO能力


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/8663374.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存