mysql系列(5)--表结构缓存

数据库操作最普遍的就是对表的操作,所以需要先了解下表的结构
MySQL是一个插件式存储引擎,导致每种对象(包括表,视图,存储过程,存储函数)的缓存方式都不相同,先来了解下最常用的表对象缓存
定义
表对象缓存是将表对象的字典信息(定义的内容)缓存到内存中,提高访问效率。
实现过程
表被访问的时候,MySQL先从缓存中查找这个表,缓存中没有对应的表缓存时,会去系统表中读取它的定义并解析。表字典对象的缓存是通过hash表来存储管理的,通过对表名Hash来搜索对象
表结构缓存使用了共享私有化缓存,缓存过程使用了一个叫table_share的结构体。TABLE_SHARE是表定义缓存,是一个静态表缓存,唯一对应一张表,所有用户都共享这个表对象。其内容从系统表获取(frm),它保存在table_def_cache(hash表,key为表名(含库名))中。
表打开时,先从系统表中将表的所以信息读入内存,包括表名,库名,列,字符集等信息。读取的信息通过结构体table_share存储。这个表可以让所有用户访问,且不能被修改的。
当用户得到table_share后,系统会重新构造一个新的对象(名字叫table)交给当前的操作。与用户进行交互。从table_share 到table实例的过程叫表结构实例化
MySQL中表对象的缓存分为2部分,一部分是table_share 的缓存,一部分是实例化后实例对象的缓存table。table_share是静态的,不能修改的,且只能存在一份。只要在表结构被修改后才会删除,或者缓存使用满了会淘汰。
被实例化后的table对象是动态的,正在进行操作的实例,并且需要构造这个对应表的存储引擎信息并且打开这个表。table实例可以理解为MYSQL与存储引擎之间交流的通道。
每一个用户的操作及不同时间的状态都是不同的,所以每一个用户必须要再在SHARE的基础上实例化一个新的对象出来

这里写图片描述

当一个操作完成之后,它所实例化的表就不需要了,此时系统不是将这个本地的实例直接释放掉,而是将其保存下来了,保存下来是为了下次某一个用户再次访问这个表的时候不需要再次进行实例化了,直接拿过来用即可

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: mysql-connector-java-8.0.19.jar是MySQL官方提供的用于Java语言连接和操作MySQL数据库的驱动程序。它是Java应用程序与MySQL数据库进行通信的桥梁。 这个驱动程序提供了许多功能和方法,使得我们可以在Java应用程序中方便地连接和操作MySQL数据库。它支持与MySQL服务器的连接、数据库的创建与删除、的创建与删除、数据的插入与查询等常见数据库操作。 使用mysql-connector-java-8.0.19.jar,你可以在Java应用程序中实现与MySQL数据库的连接。你需要通过提供数据库的地址、用户名、密码等连接信息来建立连接。一旦连接成功,你就可以执行SQL语句(如SELECT、INSERT、UPDATE等)来对数据库进行操作。 此外,mysql-connector-java-8.0.19.jar还提供了一些高级功能,如批量插入数据、事务处理、连接池管理等。它的性能也经过了优化,可以高效地处理大量的数据库操作请求。 当你在开发Java应用程序时需要连接和操作MySQL数据库时,可以将mysql-connector-java-8.0.19.jar添加到你的项目中,并在代码中引入相应的类和方法。这样你就可以方便地使用Java语言与MySQL数据库进行交互了。 总之,mysql-connector-java-8.0.19.jar是一个非常重要的Java驱动程序,它为我们提供了连接和操作MySQL数据库的功能,使得我们可以在Java应用程序中轻松地进行数据库操作。 ### 回答2: mysql-connector-java-8.0.19.jar是MySQL数据库的Java驱动程序。它是用Java编写的,用于与MySQL数据库进行交互。这个jar文件允许Java程序通过使用MySQL提供的各种功能来连接、查询和管理数据库。 mysql-connector-java-8.0.19.jar提供了一些重要的特性和功能。首先,它支持与MySQL数据库的连接和断开连接。它提供了连接池,可以管理和重用数据库连接,以提高性能并减少连接时间。它还支持通过SSL进行安全连接,以确保数据传输的安全性。 其次,这个jar文件允许Java程序执行SQL查询和更新数据库。它提供了一组API,用于执行SQL语句,如SELECT、INSERT、UPDATE和DELETE。通过这些API,Java程序可以方便地对数据库进行操作,获取和修改数据。 此外,mysql-connector-java-8.0.19.jar还支持事务处理,确保数据库操作的一致性和完整性。它提供了事务管理API,用于开始、提交和回滚事务。这对于处理复杂的数据库操作和确保数据的一致性非常重要。 最后,mysql-connector-java-8.0.19.jar还提供了对数据库元数据的访问。它允许Java程序获取有关数据库、和列的信息,如结构、索引、主键和外键等。这对于动态生成SQL查询和执行数据库架构的操作非常有用。 总而言之,mysql-connector-java-8.0.19.jar是一个重要的Java库,用于连接和操作MySQL数据库。它提供了一系列功能和API,方便了Java程序对MySQL数据库的访问和管理。无论是开发Web应用程序还是企业级应用程序,这个jar文件都是不可或缺的。 ### 回答3: mysql-connector-java-8.0.19.jar是MySQL数据库的Java官方驱动程序。它是 MySQL Connector/J 的一个版本,用于在Java应用程序中连接和操作MySQL数据库。 MySQL是一个开源的关系型数据库管理系统。为了在Java应用程序中使用MySQL数据库,需要使用适当的驱动程序来建立连接。mysql-connector-java-8.0.19.jar是一个jar文件,它包含了所有必要的类和方法,用于与MySQL数据库进行通信。 使用mysql-connector-java-8.0.19.jar,开发人员可以通过在Java程序中加载该jar文件来建立与MySQL数据库的连接。连接成功后,可以执行各种操作,如插入、更新、删除和查询数据库中的数据。 该驱动程序还提供了一些附加功能,例如连接池和事务支持。连接池可以提高应用程序的性能,通过缓存数据库连接,使其在需要时可重复使用。事务支持允许开发人员在操作数据库时确保数据的一致性和完整性。 为了使用mysql-connector-java-8.0.19.jar,需要将其添加到Java项目的类路径中。然后,可以在Java代码中导入所需的类,并使用它们来连接和操作MySQL数据库。 总之,mysql-connector-java-8.0.19.jar是一个用于在Java应用程序中连接和操作MySQL数据库的官方驱动程序。它提供了许多有用的功能和方法,使得与MySQL数据库的通信变得简单和方便。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值