高性能mysql
阅读高性能mysql读书笔记前言
本书大概分为几个部分
- 数据库底层结构
- 数据库优化
- 高级mysql
进行一些读书笔记用来给自己做参考,争取每天阅读一章
一、Mysql架构和历史
MySQL服务器逻辑架构图
- 优化与执行:mysql会解析查询并创建内部数据结构(解析树)然后对其进行各种优化
- 并发控制:通过锁来进行控制,在实际的数据库系统中,当某个用户在修改一部分数据时,mysql会通过锁定防止其他用户读取同一数据。
- 锁粒度:就是在锁的开销和数据的安全性之间寻求平衡,美中存储引擎都可以实现自己的锁策略和锁粒度。
表锁:会锁定整张表
行锁:可以最大程度的支持并发处理 - 事物:要么全部执行成功,要么全部执行失败
-
原子性:不能只执行其中一部分 一致性:没有提交的话 修改不会被保存 隔离性:操作的时候其他事物不可见 持久性:修改永久保存
-
隔离级别:四种
-
死锁:两个或者多个事物在同一资源上相互占用,并请求锁定对方占用的资源,从而造成恶性循环的现象。
在同一个事物中混合使用存储引擎是不可靠的
- 多版本并发控制:乐观并发控制和悲观并发控制
-
InnoDB的MVCC是通过每行记录后面保存的两个隐藏的列来实现的,一个保存了行的创建时间,一个保存行的过期时间(删除时间)
- Mysql的存储引擎:在文件系统中,Mysql将每个数据库保存为数据目录下的一个子目录,创建表时Mysql会在数据库子目录下创建一个和表同名的.frm文件保存表的定义。
- 介绍了很多种不同的mysql存储引擎,总结一下还是InnoDB最好用
二、MySql基准测试
这部分对于我个人来说没有太大的用处,记录一些小点吧
- 测试哪些指标?
-
吞吐量:单位时间内的事务处理数 响应时间或者延迟 并发性:这个注意一下 不要将创建数据库连接和并发性搞混,需要关注的是正在工作中的并发操作,或者同时工作中的线程数或者连接数
- 获取系统性能和状态:CPU使用率,磁盘I/O,网络流量统计,计数器等等
2.读入数据
代码如下(示例):
data = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())
该处使用的url网络请求的数据。
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。