java自动升级sql脚本flyway 工具
为什么要用Flyway
在日常开发中,我们经常会遇到下面的问题:
自己写的SQL忘了在所有环境执行;
别人写的SQL我们不能确定是否都在所有环境执行过了;
有人修改了已经执行过的SQL,期望再次执行;
需要新增环境做数据迁移;
每次发版需要手动控制先发DB版本,再发布应用版本;
其它场景…
由于项目需求的变化,或者前期设计缺陷,导致在后期需要修改数据库,这应该是一个比较常见的事情,如果项目还没上线,你可能把表删除了重新创建,但是如果项目已经上线了,就不能这样简单粗暴了,每次运维部署项目,还得手动执行一遍SQL文件。我们需要通过 SQL 脚本在已有数据表的基础上进行升级。
有了flyway,这些问题都能得到很好的解决。
使用了 Flyway 之后,如果再想进...
MySQL匹配,LIKE or REGEXP?
😀 在MySQL中,我们可以使用LIKE和REGEXP函数来进行模式匹配操作。LIKE函数使用通配符进行模式匹配,而REGEXP函数使用正则表达式进行模式匹配。这两个函数都是常用的工具,但它们在匹配方式、匹配规则和性能方面存在一些区别。
一、引言
模式匹配是一种在数据库中根据特定模式进行数据筛选和查找的技术。它允许我们根据我们所需的数据模式来提取相关的数据,从而满足我们的查询需求。模式匹配在数据分析、报表生成和数据挖掘等领域中起着至关重要的作用。
在MySQL中,我们可以使用LIKE和REGEXP函数来进行模式匹配操作。LIKE函数使用通配符进行模式匹配,而REGEXP函数使用正则表达式进行模式匹配。这两个函数都是常用的工具,但它们在匹配方式、匹配规则和性能方面存在一些区别。
二、L...
MyCat 配置服务启动
启动
用管理员身份打开命令行,进入mycat的bin目录。
输入mycat.bat install将mycat服务安装至系统。
mycat.bat install
输入mycat.bat start启动服务
mycat.bat start
如mycat.bat restart重启服务
mycat.bat restart
输入mycat.bat stop 停止服务
mycat.bat stop
输入mycat.bat status 查看当前服务状态
mycat.bat status
输入mycat.bat remove 卸载服务
mycat.bat remove
MyBatis中if test传入0值时不识别
前言
本文会写一些探究以及解决问题的过程。如果只想看解决方案请使用导航栏跳转到相应位置。
问题描述&分析
使用了MyBatis做多条件查询,其中有一个参数是astatus,当前端给的值为1时,查询结果正常。而给0时,这个查询语句就不会被拼接使用,具体请接着看。
OperatingAccountDao.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0 /EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com...
kettle 写入效率提升优化!
数据处理逻辑
ktt从多表获取数据进行过滤分析,然后汇总处理,同步写入mycat分片表和对应的mysq数据库。
MYSQ配置以及调优,如果没有,建议参考此文档调整,数据库调优文档
初始写入效率
可以看到,数据处理效率很快,瓶颈在写入效率很低
优化写入
增加数据库链接参数
useServerPrepStmts=false
rewriteBatchedStatements=true
useCompression=true
调整kettle 表出入为仅插入,减少查询
旧节点:
新节点:
开启批量插入,批次为1000,可以根据自行调节找到合适的数值
优化ktr 执行之前截断写入的物理表和分片表
优化结果
写...
905-按奇偶排序数组
题目描述
给定一个整数数组 nums,将数组中的所有偶数元素移动到数组的前面,后跟所有奇数元素。
解决思路
使用双指针技巧,一个指针从数组开头向后移动,另一个指针从数组末尾向前移动。当左指针指向奇数、右指针指向偶数时,交换两个元素的位置,直到两个指针相遇为止。
算法代码
func sortArrayByParity(nums []int) []int {
left, right := 0, len(nums)-1
for left < right {
if nums[left]%2 != 0 && nums[right]%2 == 0 {
nums[left], nums[right] = nums[...
mysql lost connection to server during query
复现
Navicat Premium 16进行数据导出的时候,导出一半频繁报错 ” mysql lost connection to server during query“。单表数据在100w左右,连续关联了6张表,虽然需求很不合理,但能导出来就好。
单表字段也很多,平均30个左右。根据错误提示,mysql查询过程中丢失链接导致错误。
方法一 修改max_allowed_packet
经实践,修改该参数为512M之后,重启之后还是不能解决此问题。
方法二 调整net超时参数
innodb_read_io_threads = 16
innodb_write_io_threads = 16
net_read_timeout = 28800
net_write_timeout =...
共计 81 篇文章,11 页。