mysql/oracle问题记录

 1、mysql8版本  group by 字段要对应  有自己的排序函数:rank 

:编写的sql 别名不要用rank 或做下处理 加单引号 'rank'

2、mybatis plus 对全表更新 删除 禁用 (安全问题)

:不允许做全表更新和删除

3、表分区

insert into ..select 语句不支持

:  DATE_FORMAT() 函数不支持分区

:分区注解 @DS("gits_sharding")

application.yml 配置样例:

shardingsphere:
  datasource:
    names: sharding-order-system
    sharding-order-system:
      type: com.alibaba.druid.pool.DruidDataSource
      driverClassName: com.mysql.cj.jdbc.Driver
      url: ${mysql.jdbcurl}
      username: ${mysql.username}
      password: ${mysql.password}
  props:
    sql.show: true
  sharding:
    tables:
      jyjl:
        actualDataNodes: sharding-order-system.jyjl_$->{0..9}
        databaseStrategy:
          none:
        tableStrategy:
          inline:
            shardingColumn: id
            algorithmExpression: yjl_$->{id[-1..-1]}
      jymx:
        actualDataNodes: sharding-order-system.ymx_$->{0..9}
        databaseStrategy:
          none:
        tableStrategy:
          inline:
            shardingColumn: id
            algorithmExpression: jymx_$->{id[-1..-1]}

4、连接mysql8  

mysql -uroot -p -P3308 -S/mysq.sock(此文件目录) 端口号3308

5、linux下 mysql 操作:

show database;

use 数据库名

后台dump 备份:

1>、整个数据库 表结构和数据

nohup ./mysqldump -uroot -p123456 -P3308 -S/mysql80/mysql.sock -e --max_allowed_packet=200M --net_buffer_length=10M --databases 数据库名 --column-statistics=0 >/usr/local/dump/jds_uat.dump &

2>、仅数据,且可有条件where:(在mysql bin 下执行)

./mysqldump -uroot -p -P3308 -S/usr/mysql80/mysql-8.0.23-el7-x86_64/mysql.sock --no-create-info --databases 数据库名--tables 表名 --where="JYR = '20211122'" > /usr/local/dump/xx.dump

dump 还原:(在dump文件所在地方执行)

mysql -uroot -f -p密码 数据库 < 数据库.dump

-f :省略错误 继续执行

如导出数据量大 ,mysqldump 用法 可参考:

from: MySQL mysqldump数据导出详解 - pursuer.chen - 博客园

服务器查看系统命令:

6、CPU 使用率 top

举例:

97.0id,表示空闲CPU,即CPU未使用率,100%-97.0%=3%,即系统的cpu使用率为3%

7、内存使用率:free -h

 total 总内存 = used + free + buff/cache

8、磁盘使用率 df

 Use% 磁盘使用率

9、oralce命令形式登录oracle: sqlplus usename/密码@IP:端口/服务名

 注意:密码里有特殊符号 需要用单引号引起来。权限的话加上sudo

<foreach collection="list" item="item" index="index" separator=",">
// 生成随机数: 时间戳+ 序号 :
concat(unix_timestamp(now()), #{index}+1)
</foreach>

mysql:强制走索引

force index (IDX_SETL_DATE,IDX_JYMX_ITEM_NONAME)

### 某一批次,根据机构分组,特征值排序,特征值前五名:自身表更新,mysql 写法
)

第一种方法:
UPDATE cred_ftur_kpi_rslt_d t,
(
SELECT
        a.medins_code,
        a.warn_bchno,
        a.ftur_kpi_code 
FROM
        cred_ftur_kpi_rslt_d a
        JOIN cred_ftur_kpi_rslt_d b 
        ON a.medins_code = b.medins_code
        AND a.warn_bchno = b.warn_bchno 
        AND a.ftur_kpi_code = b.ftur_kpi_code
        AND a.warn_bchno = 'YD2023089001' 
        AND b.warn_bchno = 'YD2023089001'
        and a.medins_code in (
        'YD140400500'
        )
WHERE
        a.ftur_infl_val <= b.ftur_infl_val 
GROUP BY
        a.medins_code,
        a.warn_bchno,
        a.ftur_kpi_code 
HAVING
        COUNT(1) <= 5 
        ) t2 
        SET t.ftur_flag = '0' 
WHERE
        t.medins_code = t2.medins_code 
        AND t.warn_bchno = t2.warn_bchno 
        AND t.ftur_kpi_code = t2.ftur_kpi_code
第二种方法:
UPDATE cred_ftur_kpi_rslt_d t inner join
(
SELECT
        a.medins_code,
        a.warn_bchno,
        a.ftur_kpi_code 
FROM
        cred_ftur_kpi_rslt_d a
        JOIN cred_ftur_kpi_rslt_d b ON a.MEDINS_CODE = b.MEDINS_CODE 
        AND a.warn_bchno = b.warn_bchno 
        AND a.warn_bchno = 'YD2023089001' 
        AND b.warn_bchno = 'YD2023089001'
        and a.MEDINS_CODE in (
        'YD140400500'
        )
WHERE
        a.ftur_infl_val <= b.ftur_infl_val 
GROUP BY
        a.medins_code,
        a.warn_bchno,
        a.ftur_kpi_code 
HAVING
        COUNT(1) <= 5 
ORDER BY
        a.ftur_infl_val DESC 
        ) t2 
        on t.medins_code = t2.medins_code 
        AND t.warn_bchno = t2.warn_bchno 
        AND t.ftur_kpi_code = t2.ftur_kpi_code
        SET t.ftur_flag = '0' 
第三种:更新效率慢
update cred_ftur_kpi_rslt_d set ftur_flag = '0' where rid in (
    select rid from (
    SELECT
        rid
    FROM
        tableName a 
    WHERE
        5> ( 
        SELECT COUNT(b.rid ) FROM tableName b 
        WHERE b.medins_code = a.medins_code
        and b.warn_bchno  = a.warn_bchno 
        AND b.ftur_infl_val > a.ftur_infl_val
        )
        and a.warn_bchno = '11'
    ORDER BY
        a.medins_code,
        a.warn_bchno,
        a.ftur_infl_val desc
    ) t2


额外clickhouse:

ClickHouse不支持主键和唯一键约束,所以在转换过程中,我们将主键和唯一键约束转换为了ORDER BY子句。此外,ClickHouse不支持text类型,所以我们将所有的text类型转换为了String类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值