23年12月知识点积累

 

序号
知识点
内容
  生成指定的删除语句用于大数据表

--mysql 5.7版本

ps定义变量需要: (SELECT @row_number := 0) r,

在MySQL 5.7中,不能在同一查询中同时设置和使用变量。为了在MySQL 5.7中实现类似的功能,您可以使用子查询来模拟row_number()函数。以下是一个示例:

select concat('select * from message_task_failure where id >= ', min(t.id), ' and id <= ', max(t.id),';') as sql_text
from (
SELECT p.id, (@row_number := @row_number + 1) AS row_num
FROM (
SELECT id
FROM message_task_failure
WHERE create_time < '2023-11-20 00:00:00'
ORDER BY id
) p, (SELECT @row_number := 0) r
) t
group by floor((t.row_num - 1) / 100000)
order by min(t.id)
limit 100000

 

-- msyql 高版本

select concat('select * from message_task_failure where id >= ', min(t.id), ' and id <= ', max(t.id),';') as sql_text
from (
select id, row_number() over (order by id) as row_num from message_task_failure
WHERE `create_time` < '2023-11-20 01:10:06'
) t
group by floor((t.row_num - 1) / 100000)
order by min(t.id)
limit 100000

  共10000万条数据库

删除100万数据 时时大概要133s 在右

删除2716849 数据大概要 738s 左右 表中共8,973,166 条 ,表大小70G左右

  启动java程序参数

报错:

stackTrace:io.netty.util.internal.OutofDirectMemorryError: failed to allocate 16777216 byte(s) of direct memory

  "failed to allocate 16777216 byte(s) of direct memory (used: 520093703, max: 536870912)"  怎么解决

 

开放平台网关:

-server -Xms1024M -Xmx1024M -Xmn384M -Xss256K

-XX:+UseG1GC -XX:G1HeapRegionSize=${G1_HEAP_REGION_SIZE} -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=35 -XX:+PrintGCApplicationStoppedTime -XX:+PrintAdaptiveSizePoli

 

Java程序中,堆内存和直接内存是两种不同的内存区域,用于存储不同类型的数据。
1. 堆内存(Heap Memory):堆内存是Java虚拟机管理的一块内存区域,用于存储对象实例和数组。在Java程序中,通过`new`关键字创建的对象都存储在堆内存中。堆内存的大小可以通过JVM参数`-Xmx`和`-Xms`来配置,分别表示堆内存的最大和初始大小
2. 直接内存(Direct Memory):直接内存是在堆外分配的一块内存区域,不受Java虚拟机的堆内存限制。它主要用于存储非堆对象,例如NIO(New I/O)库中的缓冲区。
  arthas 中jvm命令可以查看服务详细启动参数

 

 
posted @ 2024-02-18 16:42  xiaoBai1001  阅读(3)  评论(0编辑  收藏  举报