栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Mysql培训第二天

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mysql培训第二天

争取第一个内存块:

instance(实例)的作用:

instance的作用: 参考阿里一般设置为16或32

instance 的数量应该参考CPU数量 在单CPU的情况下,并发就会很少。 instance代表的是同时有多少个人能一块干活

innodb buffer pool 怎么存数据:

**LRU污染:**对于一个经常不读的表,某一天突然读取,它会从磁盘中读取出来,然后放在热端,这样就会导致我经常读取的数据滞后,当我再正常读取我经常读取的数据时,就会造成大量的IO,这就是LRU污染,造成数据库飙升。

**对LRU的优化:**添加了midpoint,第一次读取的数据会先放在midpoint位置,当再读取时,我会觉得你是真的使用它,再把它放在热端。

sql语句的排序不是在innodb buffer pool 中做的。

当一个用户连接的时候,mysql db会给它创建一个线程,除此之外,一个用户还会给它创建很多内存区域,这些内存区域就是这些用户私密的小空间。内存缓存做后面的事。

如果有排序,会多一步,会多分出一个缓存,先将数据无排序的从硬盘中调取到innodb buffer pool,然后有要求排序的时候,直接从innodb buffer pool放到每个用户私密的空间sort buffer进行排序,排完之后才能真正的返回给用户。

对select做一个总结: 首先用户进程连上来,我要先看看innodb buffer pool 中有没有我要的数据,如果有我就直接从内存拿了,如果没有我就只能磁盘IO了,磁盘IO不是直接会给用户,而是给innodb buffer pool(我为人人,人人为我,只要有人和我差不多的读取数据,我就可以直接从内存中读取数据了)

以上讲的都是全表扫描的例子,后面讲一讲索引

我有一个表,这个表有一千万行,里面有一列,这一列是男和女,当这个时候我where sex =“男”,即要找出2500万的行数
**全表扫面怎么做:**这个表是有很多个数据页组成,我一次最少也要读一页,实际上我可以多个数据页多个数据页的往里面读
一个数据页的读:

**实际多个数据页:**把这些数据放在内存里做过滤,找出我想要的

索引: .ibd中存有数据和索引,数据是按照主键索引放的
考量索引的性能就是按照树高(深度)来考量的。

索引读取方式:
假如索引是这种结构的,索引我每读一行,都要有3次IO


以上是mysql的查询在数据库中怎么流转的。
以下写更新修改的。

内存中修改的是脏数据(灰数据)。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/857875.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号