Other

电脑开机内存占用优化技巧

今天优化了电脑,16g的内存从开机内存占用45%到开机占用23%,足少了22%。看着这跟电脑初次使用时几乎差不多的内存占用率,我觉得很舒服。   主要是禁用了许多不影响使用的服务,其中我感觉消耗内存比重最大的就是sqlserver和mysql的服务了,因为平时都不怎么用数据库了,现如今我用sqlite就基本可以了。   一般禁用服务的时候,影响系统的服务,是无法被禁用的,当然还是要小心 可以 win+r输入 servics.msc 打开服务。 看【状态】和【启动类型】,把自动的服务列在最前,通过点击标题列来完成,然后详细阅读每行的【描述】信息,根据自己的理解去判断是不是很重要,我就是这样操作的,如果觉得可以禁用,就在【名称】列鼠标右击,弹出鼠标菜单后选择【属性】,将【启动类型】改成禁用,并【停止】服务。最后【确定】。这样做完成之后,重启电脑,看看效果。

用Windows Server 开启网络安装系统服务的一次测试

用Windows Server 开启网络安装系统服务的一次测试: 测试环境: VMware16/Windows Server 2022 standard (带桌面)/ Win10 21h2 ISO 简要思路和重要步骤如下: 1、虚拟机安装Win Server 2、Win Server开启DHCP服务,用于自动分配IP,注意设好网段,不要跟现有网络冲突 此处在VMware中为Win Server设置了双网卡,一个NAT模式用于连外网,一个设为自定义VMnet并关闭DHCP服务以免冲突。 DHCP的使用情况在服务器管理器-工具-dhcp-主机名-IPv4-作用域-地址租用 中可见 3、Win Server开启WDS服务,用于网络启动和安装系统 在VMware中,虚拟机-设置-硬件-CD/DVD-使用ISO映像文件,加载系统安装盘 在Win Server中,服务器管理器-工具-windows部署服务-启动映像-选择光盘Sources目录下的boot.wim 在Win Server中,服务器管理器-工具-windows部署服务-安装映像-选择光盘Sources目录下的install.wim (如果没有install.wim,重新找个msdn版本的安装盘) 服务器管理器-工具-windows部署服务-左边窗口右键点击主机名称-所有任务-启动 4、VMware新建虚拟机用于客户端,启动后在出现网络启动界面时按F12开始网络启动,安装系统前需要输入Win Server的用户名和密码(不能为空) f12的设置位置在:服务器管理器-工具-windows部署服务-左边窗口右键点击主机名称-属性-启动 5、安装完成后,客户端尚无法连接网络,需要服务器设置路由: 开启路由和远程访问服务并进入配置窗口-右键点主机名-配置并启用路由和远程访问-自定义-勾选NAT和lan路由 (这一步使得两个网卡网络互通) 回到路由和远程访问服务界面-左侧窗口路由和远程访问-主机名-IPv4-NAT-右键选新增接口-选择连外网的网卡对应的网络-选择公用接口连接到Internet并勾选启用NAT 完成  

SQL查阅笔记——约束1

外键约束:外键用来让两个表的数据之间建立链接,保证数据的一致性和完整性。 -- 创建表时添加外键约束 CREATE TABLE 表名( 列名 数据类型, … [CONSTRAINT] [外键名称] FOREIGN KEY(外键列名) REFERENCES 主表(主表列名) ); -- 建完表后添加外键约束 ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称); ALTER TABLE 表名 DROP FOREIGN KEY 外键名称; 例: -- 部门表 CREATE TABLE dept( id int primary key auto_increment, dep_name varchar(20), addr varchar(20) ); -- 员工表 CREATE TABLE emp( id int primary key auto_increment, name varchar(20), age int, dep_id int, -- 添加外键 dep_id,关联 dept 表的id主键 CONSTRAINT fk_emp_dept FOREIGN KEY(dep_id) REFERENCES dept(id) );  

mysql数据库实现nextval函数

在oracle中使用序列(Sequence)来处理主键字段,现在想要在Mysql中也实现类似的效果。 1、新建序列表 1 drop table if exists sequence; 2 create table sequence ( 3 seq_name VARCHAR(50) NOT NULL, -- 序列名称 4 current_val INT NOT NULL, -- 当前值 5 increment_val INT NOT NULL DEFAULT 1, -- 步长(跨度) 6 PRIMARY KEY (seq_name)); 2、新增一个序列 1 INSERT INTO sequence VALUES ('seq_test', '0', '1'); 3、创建currval函数,用于获取序列当前值 1 create function currval(v_seq_name VARCHAR(50)) 2 returns integer(11) 3 begin 4 declare value integer; 5 set value = 0; 6 select current_val into value from sequence where seq_name = v_seq_name; 7 return value; 8 end; 4、查询当前值 1 select currval('seq_test');  5、创建nextval函数,用于获取序列下一个值 1 create function nextval (v_seq_name VARCHAR(50)) returns integer(11) 2 begin 3 update sequence set current_val = current_val + increment_val where seq_name = v_seq_name; 4 return currval(v_seq_name); 5 end; 6、查询下一个值 1 select nextval('seq_test'); 

springboot~jackson和redis日期序列化

日期类型,我们需要统一它在被序列化后的格式,序列化是指把java类型通过网络系统或者IO进行持久化,如把一个java对象保存到txt文件里,或者把java对象保存到redis里,又或者把java对象通过网络以JSON的格式输出到浏览器上。 jackson的日期序列化 public class JacksonDateSerializerModifier extends BeanSerializerModifier { @Override public List<BeanPropertyWriter> changeProperties(SerializationConfig config, BeanDescription beanDesc, List<BeanPropertyWriter> beanProperties) { for (Object beanProperty : beanProperties) { BeanPropertyWriter writer = (BeanPropertyWriter) beanProperty; Class<?> clazz = writer.getType().getRawClass(); if (clazz.equals(Date.class)) { writer.assignSerializer(new DateSerializer()); } } return beanProperties; } /** * 格式化日期 */ public class DateSerializer extends JsonSerializer<Object> { @Override public void serialize(Object date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException { if (date == null) { jsonGenerator.

mac与windows协同(局域网)

我有两台电脑: mac和windows. 我希望mac与windows有更好的协同体验. 现在不能说完全满意, 但基本满足我目前的需要. 这里给出我选择的解决方案. utools jFlower/utools自带/爱传送(这几个都能达到目的, 我感觉我会倾向jFlower): 用于局域网传输文字/图片/剪切板. syncthing: 用于共享文件夹. 上面给出的关键词足够搜索出帮助内容. 我很愿意给出这些软件我的配置, 但我没解决这个问题: 本地图片如何快速传输, 我不愿意用图床, 因为我很在意离线体验, 不希望不联网的时候连笔记都没法做, 或者没法查看.

记一次MySQL存储过程中显示使用事务,造成的锁等待排查

今天使用MySQL存储过程往innodb表t10中插入10w条数据,如下 BEGIN DECLARE i INT; SET i = 1; while (i <= 100000) DO INSERT INTO t10 (id, a, b) VALUES (i ,i ,i); ### 每次启动事务并提交 SET i = i + 1; END while; END 调用存储过程,call idata(); 发现执行时间390s。其中的insert在每次执行都会启动事务并commit,同时会写redo log、同步binlog,刷盘10w次。为加快速度,选择批量方式,用显示声明事务的方式一次提交。如下, BEGIN DECLARE i INT; START TRANSACTION; SET i = 1; while (i <= 100000) DO INSERT INTO t10 (id, a, b) VALUES (i ,i ,i); SET i = i + 1; END while; COMMIT; END 在10w条数据未删除的情况下,调用了修改后的存储过程。因为主键id,报错:SQL错误(1062):Duplicate entry '1' for key 't10.

Git Windows 版安装和基本配置方法

Git 是一个分布式的、开源的、由 Linux 开发者 Linus Thomas 设计的代码版本控制工具。 数以万计的开源项目都采用 Git 进行版本控制与协同开发,这都归功于它是分布式的版本控制工具。 本文记录 git 在 Windows 下的安装与常见配置。 获取 可以直接从 Git For Windows 的官网获取 Git 的 Windows 版安装包。 官方网站: https://gitforwindows.org/ 淘宝镜像站: https://registry.npmmirror.com/binary.html?path=git-for-windows/ 安装 运行获取到的 Git For Windows 安装包进入安装向导: 如果你开启了“用户权限控制”功能, Windows 则要求你核实该程序的身份,并询问你是否允许它对设备进行更改。我们点击“是”或按下 ALT + Y 同意该请求以继续。 许可协议。 Git 是以 GPL V2 开源协议发布的,如果你要使用该软件产品则需要同意该协议条款,点击 “Next” 按钮以继续。 指定 Git 的安装位置。如果需要修改安装位置则可点击 “Browse” 按钮。点击 “Next” 按钮以继续。 选择需要安装的附加组件。可根据需求选择需要的附加组件和任务,如 GUI、文件关联等。。点击 “Next” 按钮以继续。 指定“开始”菜单文件夹。点击 “Next” 按钮以继续。 选择 Git 默认使用的编辑器。如果你更偏爱某个代码编辑器的话,可以选择那个代码编辑器,作为 Git 使用的默认文本编辑器。 点击 “Next” 按钮以继续。 调整新存储库默认分支的名称。当使用 “git init” 初始化新仓库时,决定默认分支名称。可根据需求修改。点击 “Next” 按钮以继续。 根据你使用 Git 命令的方式调整环境变量。点击“next” 按钮以继续。 选择 SSH 可执行文件。点击 “Next” 以继续。 选择 HTTPS 传输后端。 点击 “Next” 以继续。 配置行尾字符转换。由于一些原因,在 Windows、Unix(包括 Linux)、MacOS 下,行尾字符组合均不同,需要我们根据项目规范来选择合适的行尾字符转换配置。点击 “Next” 按钮以继续。 配置 Git Bash 使用的终端仿真器。点击 “Next” 按钮以继续。 选择 “git pull” 拉取命令的默认行为。点击 “Next” 按钮以继续。 选择凭证助手。点击 “Next” 按钮以继续。 启用其他特性,如文件系统缓存、符号链接。 点击 “Next” 按钮以继续。 选择启用实验性功能。这是安装向导的最后一步, 点击 “Install” 按钮开始安装。 进入 Git 安装过程。稍等片刻吧。 Git 安装完成。点击 “Finish” 按钮完成关闭安装向导。 Git 配置文件规则 在 Git 中,有三层配置。从下到上分别是:

linux arduino Gzip-compressed data is corrupt (CRC32 error)

出于某些原因先安装的 openjdk XX非8 导致一直 (CRC32 error) 确认过文件sha256 对得上。。。 如下解决了问题 重装 神奇大法。 sudo pacman -R arduino sudo pacman -S arduino sudo usermod -a -G uucp make sudo archlinux-java set java-8-openjdk java -version openjdk version 1.8.0_332 OpenJDK Runtime Environment (build 1.8.0_332-b04) OpenJDK 64-Bit Server VM (build 25.332-b04, mixed mode)

oracle清除日志

近日发现oracle占用的空间很大,经查,发现是 /u01/app/oracle/diag/rdbms/orcl/orcl/alert 警告日志 /u01/app/oracle/diag/rdbms/orcl/orcl/trace 跟踪日志 这两个目录日志文件太多。占用十几个G 用adrci清除日志 先确定目录 SQL> select value from v$diag_info where name ='Diag Alert'; VALUE -------------------------------------------------------------------------------- /u01/app/oracle/diag/rdbms/orcl/orcl/alert SQL> select value from v$diag_info where name ='Diag Trace'; VALUE -------------------------------------------------------------------------------- /u01/app/oracle/diag/rdbms/orcl/orcl/trace  adrci是操作系统下的oracle命令,可以直接运行adrci [oracle@dom169 /]$ adrci ADRCI: Release 12.1.0.2.0 - Production on Sat Apr 16 21:17:04 2022 Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved. ADR base = /u01/app/oracle adrci>  先查看homepath是不是所要处理的日志目录 adrci> show home ADR Homes: diag/rdbms/orcl/orcl adrci> 如果不是,先设置homepath