Mysql---sql执行

说update。跟他有关的,想到就讲,学到就讲。

常规的jdbc,加载驱动,建立连接,创建声明,执行sql,断开连接,释放资源;

java代码,建立连接。这就涉及数据的验证,连接器,用户名,密码的验证。权限一次性查询。即使权限变更,依然有效。

连接器到了mysql 服务端server这里。

分析sql语法,sql以空格形式断开,判断是否合符语法。如from 有没有 挂一个表。要不然就直接报错。near XX

优化sql。这里分析采用哪种方式执行好,性能高。比如多个索引,到底用哪个。join表,以谁作为主表合适。

explain 分析的条数是 按比例分析得出并非真实条数。

优化执行的策略都搞好了。接着就到执行的步骤了。

执行调的也就是对应的接口,比如对应innodb搜索引擎;以上的是server端的操作。

调接口,也就是拿数据。怎么拿? 

搜索引擎,每个表都是以主键带领表记录的形式构建一颗树。树的节点分支个数通常会选择合理的一个数。

为什么呢?读取一次硬盘花费时间比较长。读取一次大小,刚好装全部同一分支孩子节点,才完美。要不然就浪费。

回过头来,分析怎么拿,如果刚好这个节点所在的这一分支孩子已经在内存,内存值更新为新值。那直接给server端即可。

要是不在?直接给树里面二分查找树中节点。因为基于主键,相对还是比较紧凑。且有序。树的高度,就是搜索的时间复杂度。快。定位查找到,内存值更新为新值。返回给server端。

记住这里并没有写入数据文件。也就是我们树里面。数据存一个文件。元数据结构一个。

搜索引擎会给日志写一个准备工作。也就是redo log重写日志。这是innodb特有。

redo log是物理日志,记录物理硬盘操作。

到了server端才写bin log 归档日志。也就是类似记录sql。给某某表做了啥更新。

接着才回写redo log commit 提交。数据才给客户端一个回应。整个流程走完。

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要下载Flink SQL Connector for MySQL CDC,您可以按照以下步骤进行操作: 1. 首先,您需在您的项目中添加Flink SQL Connector for MySQL CDC的依赖项。可以使用Maven或Gradle构建工具来完成这一步骤。在您的项目配置文件中,将以下代码添加到依赖项部分: ``` <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-sql-connector-mysql-cdc_2.11</artifactId> <version>1.13.1</version> </dependency> ``` 2. 在使用Flink SQL Connector for MySQL CDC之前,您需要确保已经安装并启动了Flink集群。您可以从Flink官方网站下载并按照安装说明进行安装。 3. 下一步是配置MySQL的Change Data Capture (CDC)。您可以在MySQL的配置文件中启用CDC功能,并配置要监视的数据库表。具体配置项可能会因MySQL版本而有所不同,您可以参考MySQL的官方文档或相关教程进行操作。 4. 配置完CDC后,您可以使用Flink的Table API或SQL语句来读取CDC的数据。可以使用`TableEnvironment`对象来创建与MySQL CDC连接,并定义CDC表。以下是一个示例代码片段: ```java // 创建Flink Table环境 StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); StreamTableEnvironment tableEnv = StreamTableEnvironment.create(env); // 注册MySQL CDC Connector String ddl = "CREATE TABLE mysql_cdc_table (..., PRIMARY KEY (id)) " + "WITH (...properties...) "; tableEnv.executeSql(ddl); // 查询CDC数据 String query = "SELECT * FROM mysql_cdc_table"; Table result = tableEnv.sqlQuery(query); // 打印查询结果 tableEnv.toRetractStream(result, Row.class).print(); // 执行作业 env.execute(); ``` 这样,您就可以下载、配置和使用Flink SQL Connector for MySQL CDC来处理MySQL的Change Data Capture数据了。若需要进一步了解和使用该连接器的更多功能,建议参考官方文档或相关教程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值