【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
(...
共计 80 篇文章,10 页。