概述如果我们需要记录某一用户在一年中每天是否有登录我们的系统这一需求该如何完成呢?如果使用KV存储,每个用户需要记录365个,当用户量上亿时,这所需要的存储空间是惊人的。Redis 为我们提供了位图这一结构,每个用户每天的登录记录只占据一个比特位(0/1)。Bitmap的偏移量用来做key,Bitmap的比特位值的0/1用来做val。其实,Bitmap本身不是一种数据结构,实际上它就是字符串,但是
1. 问题背景公司内部,使用springboot进行后端接口开发,因为当前后端开发只有自己一人,所以对于一些细节问题,没有进行深入的考虑。每次开发完一段业务,直接通过 java -jar 命令的方式,把程序放入docker中进行运行。也从来没有考虑过内存问题。偶然间发现内存泄漏问题,导致docker服务直接kill掉。通过命令查看docker服务内存使用情况,发现一个小小的Java服务,内存竟然用
vps的内存为512M,安装好nginx,php等启动起来,mysql死活启动不起来看了日志只看到对应pid被结束了,后跟踪看发现是内存不足被killed; 调整my.cnf 参数,重新配置(系统默认配置太高直接占用400M内存,小玩家玩不起呢)即可 performance_schema_max_table_instances=200 table_definition_cache=200 ta
转载 7月前
46阅读
目录一、docker-compose安装redis二、k8s部署redis三、redis.conf设置最大内存四、Redis的内存淘汰 一、docker-compose安装rediscat docker-compose.ymlversion: '3.2' services: master: image: redis:7.0.8 container_name: redis
转载 10月前
194阅读
Java堆对于大多数应用来说,Java堆(Java Heap)是Java虚拟机所管理的内存中最大的一块。Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建,并确定空间大小。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。 根据Java虚拟机规范的规定,Java堆可以处于物理上不连续的内存空间中,只要逻辑上是连续的即可,就像我们的磁盘空间一样。 堆内存的大小是可以
在日常的工作和学习中,我们经常会遇到 Linux 和 Oracle 占用空间过多的情况,造成系统运行缓慢甚至崩溃。在这里,我将简要分析一下这个问题,并提出一些解决方案。 首先,让我们来分析一下为什么 Linux 和 Oracle占用大量空间。在 Linux 系统中,每个用户都有自己的家目录,通常是 /home/username,用户的文件和数据都会保存在这个目录下。另外,系统文件位于 / 目
以下的文章主要介绍的是MySQL索引的缺点以及MySQL索引在实际操作中有哪些事项是值得我们大家注意的,我们大家可能不知道过多的对索引进行使用将会造成滥用。因此MySQL索引也会有它的缺点: 虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。 建立索引会占用磁盘
新创建一个临时表空间 tmpacreate   temporary   tablespace   TEMPA   TEMPFILE   '/oracle/tmp/tempa01.dbf '   SIZE   8192M   REUSE&nb
原创 2017-08-30 18:12:35
1100阅读
SELECT tablespace_name, SUM(bytes) / 1024 / 1024 "占用空间(MB)" FROM dba_segments WHERE segment_type IN ('TABLE', 'INDEX') GROUP BY tablespace_name;
原创 2月前
40阅读
查看当前用户select SEGMENT_NAME as TABLE_NAME,BYTES/1024/1024 as 大小MB from USER_S
原创 2022-07-03 01:18:09
10000+阅读
SELECT 'EDCRAWDATA' AS TABLE_NAME,       SUM(size_gb) AS TOTAL_GB  FROM (SELECT a.owner,            &nbsp
原创 2015-12-31 15:33:30
2121阅读
我们可以通过系统视图DBA_SEGMENTS、USER_SEGMETNS、DBA_TABLES来查看一个表所占空间的大小,如下所示: 如果你通过系统视图DBA_TABELS、USER_TABLES统计、查看表所占的空间大小,那么由于统计信息过时或总是持续有DML操作(INSERTR、UPDATE、D
转载 2017-04-24 11:59:00
1132阅读
2评论
1\一、Oracle查询表空间占用情况Oracle是一种经典的关系型数据库管理系统,对于表占用空间大小的查询是数据库管理中的基本操作。查询表空间占用情况可以通过以下代码实现:SELECT a.tablespace_name "表空间名",       total "表空间大小",     
转载 11月前
434阅读
SELECT segment_name "表名", segment_type "对象类型", sum(bytes) / 1024 / 1024 "占用空间(MB)" FROM dba_extents WHERE segment_name = '表名' GROUP BY segment_name, segment_type;
数据目录通常包含数据文件、binlog、错误日志等,如果空间被占满,会导致数据库挂起,数据库无法提供对外服务。日常运维中,应加强对空间使用率的监控。 大事务 如果出现大事务,就会产生大量的binlog,若binlog cache大小不够,就会暂存到磁盘临时文件。大事务不仅对磁盘空间产生影响,还会让主从复制有很大的延迟。因此,生产环境尽量将大事务拆分成多个小事务来处理。 笛卡尔积连接 SQL编写不规
原创 2022-07-27 18:56:17
113阅读
[b]一、现象[/b] 应用报错如下: ORA-01652: 无法通过 1280 (在表空间 TEMP 中) 扩展 temp 段 该错误是因为TEMP临时表空间已占满,无法继续分配。 [b]二、原因分析过程[/b] 1.怀疑pga太小,导致占用临时表空间 经查看,pga设置为1g,排除该原因 2.某服务调用频率异常 该服务有定时器刷新,也可
      在使用这个博客以来,一致在写一些经济书籍的读后感,在一个技术网站写这个,感觉颇为遗憾。正好最近工作中发生了一件ORACLE数据库空间占用过大的问题,拿出来和大家分享。为了有趣些,参杂了一些事情和个人感受。       事情来源一个开发的同事突然发现我们的数据库中,索引
背景:ZABBIX(Centos 6.2 X64)监控服务器在安装的时候规划不好,根分区不够大只有33G,使用率已经到达98% ,经过使用 #du –sm检查发现原因是mysql下的ibdata1占用了32G. 优化变得刻不容缓,就在本机而言mysql 迁移有两种方法 。 第一种是修改.../etc/my.conf 等设定 第二种是软连接的方法 。 连接相对简单,快捷故选择第二种方法
原创 2014-05-18 23:15:02
3365阅读
问题docker容器日志导致主机磁盘空间满了。docker logs -f container_name噼里啪啦一大堆,很占用空间,不用的日志可以清理掉了。 解决方法2.1 找出Docker容器日志在linux上,容器日志一般存放在/var/lib/docker/containers/contain
转载 2020-08-03 18:04:00
666阅读
解决Oracle临时表空间过大有两种方法,方法一增加临时表空间的大小,方法二重建临时表空间,解决临时表空间过大的问题。 方案一:增加临时表空间的大小--1.临时表空间的使用情况SELECT D.tablespace_name, SPACE "SUM_SPACE(M)", blocks "SUM_BL
原创 2022-08-29 15:38:50
273阅读
  • 1
  • 2
  • 3
  • 4
  • 5