MySQL索引设计原则
代码先行,索引后上一般应该等到主体业务功能开发完毕,把涉及到该表相关sql都要拿出来分析之后再建立索引。
联合索引尽量覆盖条件设计一个或者两三个联合索引(尽量少建单值索引),让每一个联合索引都尽量去包含sql语句里的where、order by、group by的字段,还要确保这些联合索引的字段顺序尽量满足sql查询的最左前缀原 则。
不要在小基数字段上建立索引索引基数是指这个字段在表里总共有多少个不同的值,比如一张表总共100万行记录,其中有个性别字段, 其值不是男就是女,那么该字段的基数就是2。如果对这种小基数字段建立索引的话,还不如全表扫描了,因为你的索引树里就包含男和女两种值,根本没法进行快速的二分查找,那用索引就没有太大的意义了。一般建立索引,尽量使用那些基数比较大的字段,就是值比较多的字段,那么才能发挥出B+树快速二分查找的优势来。
长字符串我们可以采用前缀索引尽量对字段类型较小的列设计索引,比如说什么tinyint之类的,因为字段类型较小的话,占用磁盘空间也会比较小,此时你在搜索的时候性能也会比较好一点。当然,这个所谓的字段类型小一点的列,也不是绝对的,很多时候你就是要针 ...
网络文件夹目前是以其他用户名和密码进行映射的
在使用局域网内的映射盘来访问NAS的共享文件夹时,发现无法映射成功,提示指定的网络文件夹目前是以其他用户名和密码进行映射的。在查找相关资料后找到问题的解决办法,在此做下记录。
只需要以下两条命令即可解决。
查看windows现有的映射打开windows的命令提示符,输入net use命令
12345678C:\Users\lyn\Desktop$ net useNew connections will be remembered.Status Local Remote Network-------------------------------------------------------------------------------OK O: \\192.168.31.206\视频存储 Microsoft Windows NetworkThe command completed successfully.
删除现有的映射12345678C:\Users\lyn\Deskt ...
使用jolcore库查看Java对象大小
对象大小可以用jolcore包查看,本篇介绍jolcore的基本使用
引入依赖12345<dependency> <groupId>org.openjdk.jol</groupId> <artifactId>jol-core</artifactId> <version>0.9</version></dependency>
具体使用12ClassLayout layout = ClassLayout.parseInstance(new Object());System.out.println(layout.toPrintable());
测试代码1234567891011121314151617181920212223242526import org.openjdk.jol.info.ClassLayout;public class JOLSample { public static void main(String[] args) { ...
Nastool中IYUU插件修复
nastool中的IYUU插件因为域名问题无法正常使用,在此给出最新版的nastool中修复IYUU插件的方法。
不说废话,直接上代码
12345# 宿主机docker exec -it <container_id> /bin/bash# 容器内sudo vi /nas-tools/app/plugins/modules/iyuu/iyuu_helper.py# 修改 _api_base 为 http://ufhy.top/%s 后保存即可
java中的类加载器
java中的类加载器主要有三种:引导类加载器扩展类加载器应用类加载器
通过代码了解类加载器1234567891011121314151617181920212223242526272829303132public class TestJDKClassLoader { public static void main(String[] args) { //打印类加载器 System.out.println(String.class.getClassLoader()); //不是java对象,打印null System.out.println(DESKeyFactory.class.getClassLoader()); System.out.println(TestJDKClassLoader.class.getClassLoader()); //类加载器之间的关系 System.out.println(); ClassLoader appClassLoader = ...
java程序启动时都发生了什么
本文主要介绍在我们执行java -jar xxx.jar时都发生了什么,附框图。
当我们执行这个命令时:
java命令会去调用jvm.dll来创建java虚拟机
java虚拟机创建一个引导类加载器,并使用它加载sun.misc.Launcher类
Launcher类创建一些其他的类加载器,比如appclassloader,随后appclassloader会去加载Main.class类。 其中main class是从jar包中的MANIFEST.MF文件找到的。
加载的过程如下:
首先把类从硬盘加载到jvm内存,具体是在方法区
然后对类进行验证,主要是验证这个类的字节码是否符合Java的规范,比如某个字节放Java的主版本,次版本,某个字节放类的常量个数等。
之后进行准备,主要是对类内的静态变量分配内存并赋予默认值.
随后进行解析,把类内部的符号变量替换为一些静态地址.
最后进行初始化,对静态变量赋予初始值。
个人理解:类加载过程就是读取.class文件到内存中,将其放在方法区内,然后在Java堆区创建一个java.lang.Class对象,通过Class对象来访 ...
linux文件的特殊权限
在此贴出Linux文件的特殊权限的相关资料
Set UID当 s 这个标志出现在文件拥有者的 x 权限上时,例如刚刚提到的 /usr/bin/passwd 这个文件的权限状态:“-rwsr-xr-x”,此时就被称为 Set UID,简称为 SUID 的特殊权限。 那么SUID的权限对于一个文件的特殊功能是什么呢?基本上SUID有这样的限制与功能:
SUID 权限仅对二进制程序(binary program)有效;
执行者对于该程序需要具有 x 的可执行权限;
本权限仅在执行该程序的过程中有效 (run-time);
执行者将具有该程序拥有者 (owner) 的权限。
举个例子,我们的 Linux 系统中,所有帐号的密码都记录在 /etc/shadow 这个文件里面,这个文件的权限为:“———- 1 root root”,意思是这个文件仅有root可读且仅有root可以强制写入而已。但是我们的普通用户在修改密码是也需要对这个文件进行写入,那么具体是如何做到的呢?
1我们给passwd明明添加SUID权限,并且给普通用户执行权限,那 ...
linux文件的隐藏属性
我们在使用NAS时,有时会遇到文件无法删除的情况(前提是已经获取了root权限)遇到这种情况我们应该考虑linux隐藏属性的问题。
尝试使用如下命令来删除隐藏属性,随后再删除文件
12chattr -ai 文件名rm -rf 文件名
同时贴出Linux隐藏属性的相关资料。
chattr (设置文件隐藏属性)12345678910111213141516171819202122232425262728293031323334[root@study ~]# chattr [+-=][ASacdistu] 文件或目录名称选项与参数:+ :增加某一个特殊参数,其他原本存在参数则不动。- :移除某一个特殊参数,其他原本存在参数则不动。= :设置一定,且仅有后面接的参数A :当设置了 A 这个属性时,若你有存取此文件(或目录)时,他的存取时间 atime 将不会被修改, 可避免 I/O 较慢的机器过度的存取磁盘。(目前建议使用文件系统挂载参数处理这个项目)S :一般文件是非同步写入磁盘的(原理请参考前一章sync的说明),如果加上 S 这个属性时, 当你进行任 ...
个人下载记录
安装常用cmder1https://oss.dreamlyn.cn/nas/blog/cmder.zip
all-in-one1https://oss.dreamlyn.cn/nas/docker/all-in-one.zip
media1https://oss.dreamlyn.cn/nas/docker/media.zip
docker-compose1https://oss.dreamlyn.cn/nas/blog/docker-compose
synology assistant1https://oss.dreamlyn.cn/nas/blog/synology-assistant-7.0.3-50049.exe
Clash For Windows1https://oss.dreamlyn.cn/nas/blog/Clash.for.Windows-0.20.39-win.7z
旁路由1https://oss.dreamlyn.cn/nas/openwrt/bleachwrt-plus-20240101-x86-64-generic-squashfs-combined-efi. ...
个人Docker镜像记录
登录123docker login --username=周易大师李亚楠 registry.cn-hangzhou.aliyuncs.comdocker logout registry.cn-hangzhou.aliyuncs.comdocker image ls | grep phpmyadmin
DDSN-GO12docker tag a5c5b90945d8 registry.cn-hangzhou.aliyuncs.com/lyn_nas/ddns-go:latestdocker push registry.cn-hangzhou.aliyuncs.com/lyn_nas/ddns-go:latest
Frp12docker tag 846bd5c0d1ef registry.cn-hangzhou.aliyuncs.com/lyn_nas/frpc:latestdocker push registry.cn-hangzhou.aliyuncs.com/lyn_nas/frpc:latest
Zerotier12docker tag fa4e316b03c7 registry. ...