主页

一键创建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 (...

阅读更多

【leetcode146】LRU缓存机制

请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。 void put(int key, int value) 如果关键字 key 已经存在,则变更其数据值 value ;如果不存在,则向缓存中插入该组 key-value 。如果插入操作导致关键字数量超过 capacity ,则应该 逐出 最久未使用的关键字。 函数 get 和 put 必须以 O(1) 的平均时间复杂度运行。 示例: 输入 [“LRUCache”, “p...

阅读更多