主页

【Leetcode206】反转链表

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 //输入:head = [1,2,3,4,5] //输出:[5,4,3,2,1] 思路 首先,我们定义了两个指针 prev 和 curr ,初始时将它们都指向链表的头节点 head 。然后,我们使用一个循环,遍历整个链表。 在每一次循环中,我们先将 curr 的下一个节点保存在 nextNode 中,以便在反转后能够继续遍历链表。然后,我们将 curr 的 next 指针指向 prev ,这样就将 curr 的指针方向反转了。接着,我们将 prev 指向当前节点 curr , curr 指向下一个节点 nextNode ,继续下一次循环。 通过不断地反转指针的...

阅读更多

储存过程实现show create table 获取表的创建SQL

储存过程实现show create table 实现思路 首先,我们声明了一些变量,用于存储字段名、字段类型、索引信息等。 然后,我们使用游标遍历字段信息,通过查询 INFORMATION_SCHEMA.COLUMNS 表获取字段的详细信息。在遍历过程中,我们根据字段的属性构建字段定义部分,并添加注释。 接着,我们使用游标遍历索引信息,通过查询 INFORMATION_SCHEMA.STATISTICS 表获取索引的详细信息。在遍历过程中,我们构建索引定义部分。 在构建完字段和索引部分后,我们查询表的注释、引擎和字符集信息,并开始构建创建表的 SQL 语句。 如果表有主键,则将主键信息添加到创建表的 SQL 语句中。 最后,我们移除最后一个逗号和换行符,并...

阅读更多

一键创建mycat分片表

使用储存过程创建mycat分片表 在数据库开发中,我们经常需要创建分片表来存储大量数据。为了简化这一过程,我们可以使用储存过程来自动创建分片表。本文将介绍三个储存过程,它们可以帮助我们创建分片表。 1. 创建储存过程 “creatingAFragmentTable” 这个储存过程用于遍历一个表的所有分片,并调用另外两个储存过程来生成创建表的SQL语句,并执行创建表操作。 首先,我们声明了一些变量,如表名、游标和结束处理程序。然后,我们使用游标遍历目标表的所有分片,并调用 “generate_create_table” 储存过程来生成创建表的SQL语句。最后,我们调用 “create_shard_tables” 储存过程来执行创建表的操作。 下面是 “creating...

阅读更多

windows环境下mycat服务启动报错1067

1. Mycat 启动问题 1.1 Unrecognized VM option ‘AggressiveOpts’ Launching a JVM... INFO | jvm 1 | 2023/09/11 09:42:16 | Unrecognized VM option 'AggressiveOpts' INFO | jvm 1 | 2023/09/11 09:42:16 | Error: Could not create the Java Virtual Machine. INFO | jvm 1 | 2023/09/11 09:42:16 | Error: A fatal exception has occurred. P...

阅读更多

mysql配置调优(16G/32G)

Mysql 配置调优【16G/32G】 先确定 mysql 配置文件(my.ini)位置,一般在 ProgramData/MySQL/MySQL Server 5.7 目录下,备份原文件,然后根据下面的内存配置进行对应修改,没有的配置项则进行对应增加,修改完成之后重启 Mysql 服务。 配置详解 参数项 参数值 参数说明 [client]   客户端设置(当前为客户端默认参数) port 3306 默认连接端口为3306 socket /tmp/mys...

阅读更多

【Leetcode46】全排列

全排列 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums = [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示例 2: 输入:nums = [0,1] 输出:[[0,1],[1,0]] 示例 3: 输入:nums = [1] 输出:[[1]] 提示: 1 <= nums.length <= 6 -10 <= nums[i] <= 10 nums 中的所有整数 互不相同 思考 这是典型的回溯算法问题。因...

阅读更多

解决mysql锁表,navicate操作卡死

1. 查询锁死的数据库和对应的表 show OPEN TABLES where In_use > 0; 2. 查询 mysql 当前进程 show full processlist 3. 杀死进程 根据 state 的为 waiting 判断当前进程造成表锁死,然后根据db是自己的数据库进行杀死进程操作 记下 id ( state 为 waiting, db 是自己的数据库) kill Id 再次查询,发现锁死的表已经消失了 show OPEN TABLES where In_use > 0 参考文章

阅读更多

Limit分页重复数据问题分析

问题原因 在进行一次数据导出的过程中,发现导出的数据包含重复数据,sql查询使用group进行分组子查询 之后再使用limit进行分组。业务上需要联表可能会出现重复数据,在单表上进行测试,分组根据唯一索引进行数据分组, 测试数据保证数据唯一。 问题sql如下: SELECT * FROM ( SELECT * FROM testTable GROUP BY testKey ) test LIMIT 100,20 SQL获取testTable表中的数据并且根据testKey去重复,最后再获取分页数据的数据。验证过程中发现,使用distinct 去重复数据再分页问题依旧。 问题SQL如下: SELECT * FROM (...

阅读更多