2i用户是什么意思

2i用户是什么意思,第1张

2i用户是指可以访问二级存储的用户,通常情况下,2i用户可以访问数据库中的数据,并且可以进行查询和更新 *** 作。2i用户可以访问数据库中的表,并且可以查看表中的数据,也可以更新表中的数据。2i用户可以使用SQL语句来查询和更新数据库中的数据,这样可以更好地管理和维护数据库中的数据。2i用户也可以使用数据库管理系统(DBMS)来管理和维护数据库中的数据,这样可以更好地管理和维护数据库中的数据。

数据库是按照数据结构来组织、存储和管理数据的仓库,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。数据库是一个单位或是一个应用领域的通用数据处理系统,它存储的是属于企业和事业部门、团体和个人的有关数据的集合。数据库中的数据是从全局观点出发建立的,按一定的数据模型进行组织、描述和存储。其结构基于数据间的自然联系,从而可提供一切必要的存取路径,且数据不再针对某一应用,而是面向全组织,具有整体的结构化特征。数据库中的数据是为众多用户所共享其信息而建立的,已经摆脱了具体程序的限制和制约。不同的用户可以按各自的用法使用数据库中的数据多个用户可以同时共享数据库中的数据资源,即不同的用户可以同时存取数据库中的同一个数据。数据共享性不仅满足了各用户对信息内容的要求,同时也满足了各用户之间信息通信的要求。

Innodb的四个特性

在介绍Innodb预读特性之前,笔者有必要介绍一下 *** 作系统的局部性原理,这样方便于读者理解Innodb的一个强大特性-----预读。

局部性原理

一个优秀额程序通常会有良好的局部性,所谓局部性指的是一个应用程序通常会重复使用某块内存区域中的数据,或者使用该区域邻近内存区域的数据。默认情况下当 *** 作系统监测到某块内存区的数据将要被重复使用或者邻近的数据将要被使用时, *** 作系统会一次性将相邻的若干个数据块同时加载到内存缓冲区中。局部性原理分为以下两种:

有了以上局部性原理的知识基础之后,我们再来理解预读的原理就相对简单多了。可以简单的理解为:当Innodb监测到某一块磁盘空间的数据将要被读取时邻近的数据很快将要被使用,Innodb会一次性仅通过一次IO *** 作将数据读取到内存缓冲池中。Innodb中预读包含两种模式:

何时触发Innodb预读功能可以通过如下配置来控制

双写缓冲区:双写缓冲是一种特殊的文件刷新技术,它涉及到一种称为双写缓冲区的数据结构。在默认情况下Innodb默认开启该功能(dubblewrite_buffer=ON),他增加意外退出和断电后的数据恢复的安全性,并减少文件同步(fsync()) *** 作来提高数据库的性能。

在将页面写入数据文件之前, InnoDB 首先将它们写入称为双写缓冲区的连续表空间区域。只有在对双写缓冲区的写入和刷新完成后,才会 InnoDB 将页面写入数据文件中的适当位置。如果在页面写入过程中存在 *** 作系统、存储子系统或意外 的 mysqld 进程退出(导致 页面撕裂 的 情况), InnoDB 则可以稍后在恢复期间从双写缓冲区中找到该页面的良好副本。

双写缓冲的实现过程 : 对缓冲池的脏页进行刷新时,不是直接写磁盘,而是会通过memcpy()函数将脏页先复制到内存中的doublewrite buffer,之后通过doublewrite 再分两次,每次1M顺序地写入共享表空间的物理磁盘上,在这个过程中,因为doublewrite页是连续的,因此这个过程是顺序写的,开销并不是很大。在完成doublewrite页的写入后,再将doublewrite buffer 中的页写入各个 表空间文件中,此时的写入则是离散的。如果 *** 作系统在将页写入磁盘的过程中发生了崩溃,在恢复过程中,innodb可以从共享表空间中的doublewrite中找到该页的一个副本,将其复制到表空间文件,再应用重做日志。

注意:将数据页写如文件的时候,Innodb会将数据写入redo log日志文件中,当完全写入redo log文件之后会设置一个prepare状态,然后再将数据写入dubbo write buffer中,当意外突出或者断电,数据库恢复数据时会先检查redo log日志文件中是否有prepare状态,如果有直接使用dubble write buffer恢复数据,如果dubble write buffer不可用则使用redo log文件恢复数据,这种方式称为二阶段提交方式。

数据写顺序:redo log --->dubble write buffer - 通用表空间---->指定表空间

innodb使用insert buffer"欺骗"数据库:对于为非唯一索引,辅助索引的修改 *** 作并非实时更新索引的叶子页,而是把若干对同一页面的更新缓存起来做合并为一次性更新 *** 作,转化随机IO 为顺序IO,这样可以避免随机IO带来性能损耗,提高数据库的写性能。

插入缓冲的配置

当缓冲池中的某个数据(17次)或者某个页(100次)经常被访问,达到一定频率的时候,Innodb会根据缓冲池中的数据自动构建一个hash索引,提高数据的访问速度,该索引称为自适应哈希索引。

Innodb存储引擎会监控对表上二级索引的查找,如果发现某二级索引被频繁访问,二级索引成为热数据,建立哈希索引可以带来速度的提升

经常访问的二级索引数据会自动被生成到hash索引里面去(最近连续被访问三次的数据),自适应哈希索引通过缓冲池的B+树构造而来,因此建立的速度很快。

哈希(hash)是一种非常快的等值查找方法 ,在一般情况下这种查找的时间复杂度为O(1),即一般仅需要一次查找就能定位数据。而B+树的查找次数,取决于B+树的高度,在生产环境中,B+树的高度一般3-4层,故需要3-4次的查询

篇尾寄语:

技术赋能于业务,希望本篇文章让每一位读者有所收益...................................................

如有不当的地方请多多计较,共同学习,共同进步,fighting............................................

祝所有编程爱好者,求职,加薪,迎娶白富美,走向人生巅峰........................................


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

原文地址: http://outofmemory.cn/sjk/6839273.html

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

发表评论

登录后才能评论

评论列表(0条)

保存