mysql学习笔记(一)

1.修改密码

alter user 'root'@'localhost' identified by 'Cpt19940901.';--修改初始密码
flush privileges;--刷新权限

2.添加用户

--方法一,不需要刷新权限
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost' IDENTIFIED BY 'Cpt19940901.' WITH GRANT OPTION;
--方法二,需要刷新权限
INSERT INTO user VALUES ('localhost','monty',PASSWORD('Cpt19940901.'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
FLUSH PRIVILEGES;

3.删除用户

drop user 'root'@'localhost'

4.连接方式

在使用过程中,一般使用长连接,但长连接打开的多了之后,会对服务器产生一定的压力,所以mysql会关闭长时间不活动的连接。对于mysql的连接,mysql对于一个连接会新建一个线程来处理,后台关闭连接的方法一般都是把线程kill掉

5. 查看连接超时时间

5.1 查看非交互式连接超时时间
show global variables like 'wait_timeout';
5.2 查看交互式连接超时时间
show global variables like 'interactive_timeout';

6.查看当前连接数

show global status like 'Thread%';
名称数量解析
Threads_cached0已缓存的连接
Threads_connected6当前打开的连接
Threads_created6创建过的连接
Threads_running3当前使用中的连接

7. 查看服务端允许的最大连接数

5.7版本,默认最大连接数151,可设置最大为100000

show variables like 'max_connections';

8. 连接参数

8.1 参数级别
会话级别:会话级别仅在当前连接中有效(会话:variables)
全局级别:全局级别在所有连接中有效(全局:globel)
8.2 修改方式
动态修改:重启失效,使用set命令进行修改 (set 会话级别 参数名=参数值)
永久修改:永久生效,在配置文件中修改(linux:my.cnf,windows:my.ini)

9. Mysql通信协议

  • TCP/IP
  • SOCKET

10. 查看sql长度限制

show variables like 'max_allowed_packet';

11. Mysql5.7默认不开启缓存

原因:限制太高,必须执行的语句完全相同(包含空格)才会查询缓存,而且表结构,数据改变,都会导致当前表的所有缓存失效

12. 一条查询语句的执行过程

1.客户端:由客户端建立与mysql服务器的连接
2.缓存:首先会到缓存查看该sql是否能取到结果,若能则返回结果给客户端,若不能则进入第三步
3.词法语法解析:服务器会对该条sql进行词法与语法解析,词法解析会将sql打碎成单个的词语形成解析树。
  语法解析会判断当前sql是否存在语法错误。
4.预处理器:判断表名,列是否正确
5.优化器:根据生成的解析树生成不同的执行计划,然后选择最优的执行计划(exection plans),mysql
  选择最优执行计划是基于开销选择的。使用show status like 'Last query cost'查看最后一次执行的
  sql语句的开销情况,单位是随机读取的页数。使用Explain加到sql语句前边,可以查看执行计划信息。
6.执行引擎:执行引擎使用生成的最优执行计划并调用存储引擎,获取执行结果,若开启缓存还会将结果写入
  缓存,若没开启缓存,则将结果返回客户端

13. 一条更新语句的执行过程

1.事务开始,从内存或磁盘取到这条数据,返回给 Server 的执行器
2.执行器修改这一行数据的值为 penyuyan
3.记录 name=qingshan 到 undo log
4.记录 name=penyuyan 到 redo log 
5.调用存储引擎接口,在内存(Buffer Pool)中修改 name=penyuyan 
6.事务提交

14. 脏页与刷脏

在执行修改语句时,会将需要修改的数据以及邻近的一页数据都加载到内存中,然后在内存中进行数据修改,然后再将
数据同步到内存上。内存中的数据已修改,而还未同步到磁盘时,内存中的数据页称为脏页。将数据从内存同步到磁盘
的动作叫做刷脏。

15. IO操作

1.随机IO:如果我们所需要的数据是随机分散在磁盘上不同页的不同扇区中,那么找到相应的 数据需要等到磁臂旋转到指定的页,然后盘片寻找到对应的扇区,才能找到我们所需要 的一块数据,一次进行此过程直到找完所有数据,这个就是随机 IO,读取数据速度较慢。
2.顺序IO:假设我们已经找到了第一块数据,并且其他所需的数据就在这一块数据后边,那么 就不需要重新寻址,可以依次拿到我们所需的数据,这个就叫顺序 IO。

16.执行更新语句时,写入日志到redolog与刷盘同为磁盘操作,为什么不直接写入磁盘。

原因:刷盘是随机 I/O,而记录日志是顺序 I/O(连续写的),顺序 I/O 效率更高。因此先 把修改写入日志文件,在保证了内存数据的安全性的情况下,可以延迟刷盘时机,进而 提升系统吞吐。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值