- 博客(217)
- 资源 (1)
- 收藏
- 关注
原创 根据服务器系统选择对应的MySQL版本
MySQL有多个版本,选择对应的版本,重点信息是Linux的GLIBC版本号,Linux的版本、系统位数。
2024-03-14 17:40:26 784
原创 修改hostname
在 hosts 文件中,将旧主机名替换为新主机名。请注意,此处的更改只需修改与旧主机名对应的行,确保其他部分保持不变。请注意,修改主机名可能会影响某些服务和应用程序的正常运行,因此请确认您的系统和相关应用程序对主机名的更改没有特定的依赖关系。在打开的文件中,将当前的主机名替换为您想要设置的新主机名。前面VM-16-2是云服务器的内网网段标识,保留,系统重启后,新的主机名将会生效。是对应云服务器的区域。
2024-01-26 12:10:29 749
原创 腾讯云服务器自定义配置方式购买,为什么要创建创建私有网络及子网?对服务器购买有啥影响吗?网络规划,如何选择子网掩码位数?创建私有网络及子网,创建安全组指定IP注意事项,修改hostname
快速配置就不用管,我这里说的是自定义配置。不要忽略官方链接介绍(官方链接有的,我不再赘述),否则很多东西不知道为什么这么配置。
2024-01-17 12:41:16 1217
原创 Ubuntu镜像下载;VMware安装Ubuntu;Ubuntu找不到ifconfig(command not found: ifconfig);Ubuntu能ping通但是远程连接不通
上述的这些情况,红帽建议广大 CentOS Linux 用户提前行动起来,尽快选择一条适合的路径开始迁移工作。1、Ubuntu/Debian 适用于新特性要求多的互联网行业(AI、编译环境、大数据)Ubuntu 拥有庞大的社区,提供在线教程和指南,用户可以在这些社区的帮助下自行解决各种问题和障碍,同时在 Ubuntu 或 Debian 上设置基于服务器的应用程序。。2、Oracle linux(传统生产环境)
2023-11-13 09:36:13 352
原创 CentOS 7镜像下载;VMware安装CentOS 7;解决新安装的虚拟机没有网络,无法ping通网络的问题
Full Name就是登录的时候提示的名字,个人喜欢按照虚拟机的用途来起,Full Name填写之后,会触发输入事件,User Name也会跟着Full Name的内容一起变,可以按自己喜好修改User Name。如果现在安装操作系统,很多选项会默认直接帮你做好,导致在后面创建自定义用户的时候,没有root权限,而且会不知道root的密码,很麻烦。点击虚拟机页面,进到虚拟机的系统桌面(Ctrl Alt可以推出虚拟机桌面),小键盘上下切换到第一个选项,执行安装。点击用户名,或者按Enter键,进行登录。
2023-11-13 09:35:47 584
原创 MySQL6:索引使用原则,联合索引,联合主键/复合主键,覆盖索引、什么是回表?索引条件下推,索引的创建与使用,索引的创建与使用,索引失效
回表:非主键索引,我们先通过索引找到主键索引的键值,再通过主键值查出索引里面没有的数据,它比基于主键索引的查询多扫描了一棵索引树,这个过程就叫回表。当我们用name索引查询一条记录,它会在二级索引的叶子节点找到name=Susan,拿到主键值,也就是id = 3,然后再到主键索引的叶子节点拿到数据。覆盖索引:在二级索引里面,不管是单列索引还是联合索引,如果select的数据列只用从索引中就能够取得,不必从数据区中读取,这时候使用的索引就叫做覆盖索索引,这样就避免了回表。。比如上图。
2023-10-29 23:15:09 3938
原创 分布式锁设计选型 不可重入锁建议使用ZooKeeper来实现 可重入锁建议使用Redis来实现 分布式锁:ZooKeeper不可重入锁 Java优化建议
如果获取到了锁,则将锁的持有者设置为当前线程,并记录获取锁的次数;如果释放锁时,只有当锁的持有者是当前线程并且锁的持有次数等于1时才释放锁,否则只减少锁的持有次数。同时,需要注意的是,在多线程和高并发的情况下,使用可重入锁可能会出现死锁问题,需要谨慎使用和合理设计。同时,在使用连接池时需要注意,不能设置过大的连接池大小,否则可能会导致ZooKeeper服务器的负载过高,影响系统的稳定性和可用性。如果你的分布式锁是不可重入锁,那么在获取到锁之后,该线程就已经拥有了这把锁,并且其他线程无法再次获取到该锁。
2023-10-26 23:26:34 308
原创 MySQL5:MySQL数据存储文件;MylSAM中索引和数据是两个独立的文件,它是如何通过索引找到数据呢?聚集索引/聚簇索引,InnoDB中二级索引为什么不存地址而是存键值?row ID如何理解?
MylSAM中索引和数据是两个独立的文件,它是如何通过索引找到数据呢?MylSAM的B+Tree里面,叶子节点存储的是数据文件对应的磁盘地址。所以从索引文件.MYI中找到键值后,会到数据文件.MYD中获取相应的数据记录。在MylSAM里面,其他的索引也在这个.MYI文件里面。 非主键索引跟主键索引存储和检索数据的方式是没有任何区别的,没有主次之分,二者都是在索引文件里面找到磁盘地址,然后到数据文件里面获取数据。
2023-10-26 23:23:43 609
原创 MySQL4:索引是什么;索引类型;索引存储模型发展:1.二分查找,2.二叉查找树,3.平衡二叉树,4.多路平衡查找树,5. B+树,6.索引为什么不用红黑树?7.InnoDB的hash索引指什么?
数据库索引,是数据库管理系统(DBMS)中一个排序的数据结构,以协助快速查询、 更新数据库表中数据。数据是以文件的形式存放在磁盘上面的,每一行数据都有它的磁盘地址。如果没有索引的话,我们要从500万行数据里面检索一条数据,只能依次遍历这张表的全部数据, 直到找到这条数据。但是我们有了索引之后,只需要在索引里面去检索这条数据就行了,它是一种特殊的专门用来快速检索的数据结构,我们找到数据存放的磁盘地址以后,就可以拿到数据了。
2023-10-26 13:22:22 352
原创 MySQL3:MySQL中一条更新SQL是如何执行的?
redo log的大小是固定的,所谓大小固定是指,它的结构是一个环状的,当新的内容写满了,会覆盖旧的内容,这个就是大小固定的意思。它可以通过参数来设置它的文件个数,可以通过来指定每个redo log文件的大小,默认是两个文件,你设置成4就是4个文件。所以在不断写的过程中,也需要不断地清理redo log的内容,如果一致不清理,那么当当前写的位置赶上了上一个清理的检查点的位置,那么就会触发buffer pool里面的内容刷盘。内存缓冲区对于提升读写性能有很大的作用。
2023-10-25 15:00:35 677
原创 MySQL2:MySQL中一条查询SQL是如何执行的?
得到解析树之后,是不是执行SQL语句了呢?这里我们有一个问题,一条SQL语句是不是只有一种执行方式?或者说数据库最终 执行的SQL是不是就是我们发送的SQL?这个答案是否定的。一条SQL语句是可以有很多种执行方式的,最终返回相同的结果,他们是等价的。比如索引有好几个,那么最终选择哪一个索引;或者是多张表进行关联查询的时候,使用哪个表作为基准表,以及其它的语法方面的一些优化等。有多种执行方式,这些执行方式怎么得到的?最终选择哪一种去执行?根据什么判断标准去选择?
2023-10-25 15:00:25 584
原创 MySQL1:MySQL发展史,MySQL流行分支及其对应存储引擎
Percona Server是MySQL重要的分支之一,它基于InnoDB存储引擎的基础上,提升了性能和易管理性,最后形成了增强版的XtraDB存储引擎,可以用来更好地发挥服务器硬件上的性能。心MySQL数据库发展的未来(开发缓慢,封闭,可能会被闭源),就创建了一个分支MariaDB (2009年),默认使用全新的Maria存储引擎,它是原MylSAM存储引擎的。国内也有一些MySQL的分支或者自研的存储引擎,比如网易的InnoSQL,极数云舟的ArkDB。这个就涉及到MySQL的整体架构和工作流程了。
2023-10-23 14:28:15 258 1
原创 JVM13-调优1:JVM调优常用命令,jinfo-实时查看和调整JVM配置参数,jstat-查看虚拟机性能统计信息,jstack-查看线程堆栈信息,jmap-生成堆转储快照
JVM调优1:JVM调优常用命令,jinfo-实时查看和调整JVM配置参数,jstat-查看虚拟机性能统计信息,jstack-查看线程堆栈信息,jmap-生成堆转储快照
2023-10-06 12:34:28 328
原创 JVM11:垃圾收集器的并发和并行,Serial,Serial Old,ParNew,Parallel Scavenge,Parallel Old,源码分析CMS两种模式,CMS如何定位可达对象?
垃圾收集器也分为并发和并行,这个和我们并发编程中说的并发并行是完全不一样的,要注意区分:并行类收集器:指的是垃圾收集线程有多条线程在一起工作,并且中间不穿插应用线程并发类收集器:指的是垃圾收集线程能够和用户线程一起跑,或者说中间有某些步骤能够一起跑如果硬件环境就是单线程,而我们用到的逻辑是并发类的逻辑,它还是只会先跑一个线程,那么这个时候就叫做并发不并行。垃圾收集线程其实会结合硬件条件来选择是并发并行的状态还是并发不并行的状态如果既要并发,又要并行,那么就开多线程,并使用并发收集器就可以了
2023-09-12 15:49:13 465
原创 JVM10:JVM参数分类,JVM标准参数,JVM非标准参数,-X参数,-XX参数,其他参数;查看JVM参数,idea控制台输出JVM参数,单位换算;设置JVM参数的常见方式;常用JVM参数及含义
值得注意的是"=“表示默认值,”:="表示被用户或JVM修改后的值(JVM启动时也会修改一些参数的值,:=并不都是你设置的)通过jinfo实时调整某个java进程的参数(参数只有被标记为manageable的flags可以被实时修改)使用得最多的参数类型,也是非标准化参数,相对不稳定,主要用于JVM调优和Debug。要想查看某个进程具体参数的值,可以使用jinfo,这块后面聊。一般要设置参数,可以先查看一下当前参数是什么,然后进行修改。JVM参数分为两类,一类是标准参数。
2023-09-03 23:17:33 506
原创 JVM9:STW:stop the world,什么时候会垃圾回收?垃圾收集算法:标记清除算法、标记复制算法、标记整理算法;清除算法的整理顺序:任意顺序,滑动顺序;什么是分代收集算法?
这么多的算法都是一些概念,具体的实现会根据不同的开发者、不同公司的垃圾收集器、以及垃圾收集器的不同版本会有细微的差别。不光整理算法,标记清除算法也会有很多衍生的规则,比如清除之后,剩余的空闲空间在不进行整理的时候,势必会有一个空闲列表去维护空闲空间的信息,这样对象来了之后,会去判断是否放得下,然后给出合适的内存位置,那么这种空间分配的方式也会有很多种算法。上面介绍了3中垃圾收集算法,那么在堆内存中到底用哪一个呢?
2023-09-02 19:21:25 645 1
原创 JVM垃圾回收常说的清除标记是指清除什么?JVM垃圾回收常说的更新引用是干嘛的?更新引用和GC Roots的引用的区别;对象本身的引用、引用这个对象的其他对象的引用以及GC Roots引用的区别
如果某个对象没有被标记,表示它是不可达的,垃圾回收器将释放其占用的内存空间。总结起来,"更新引用"是确保对象的引用在对象移动后指向正确的内存位置,而不会导致引用链的错误。在更新引用期间,不仅对象的引用需要更新,还需要确保所有涉及到这些对象的引用链都指向正确的位置。这是垃圾回收过程的一个重要步骤,它确保不再被引用的对象被释放,以便释放出内存供后续的对象分配使用。在垃圾回收的过程中,特别是在使用复制算法或标记-整理算法进行内存整理后,第二次遍历通常是用来检查和更新对象引用,确保它们指向正确的内存位置。
2023-08-31 20:10:25 153 1
原创 JVM8:引用是什么?强引用,软引用,弱引用,虚引用,ReferenceQueue引用队列;对象生命周期有哪些阶段?创建、应用、不可见、不可达、收集、终结、对象空间重分配;重写finazlie方法弊端
对比之下,软引用 在框架里用的比较多,弱引用和虚引用无法看到立竿见影的效果,因此在业务代码中,用的很少。强引用不需要new对应的引用对象,其它三种引用需要显示的去new才能够使用。
2023-08-30 13:52:55 243
原创 JVM7:垃圾回收是什么?从运行时数据区看垃圾回收到底回收哪块区域?垃圾回收如何去回收?垃圾回收策略,引用计数算法及循环引用问题,可达性分析算法
JVM内存模型认识的差不多了,就应该思考,什么样的内存模型适合什么样的GC策略,包括垃圾回收为什么会出现。实际上,很多东西都是相对应版本的JVM强加上去的。那么垃圾回收是什么?到底回收哪块区域?如何去回收?这个时候观察运行时数据区来进行分析。线程私有的区域是完全没有必要回收的,因为方法消亡就消亡了,它的生命周期很短,会伴随着你的方法的退出而消亡,因此不必关心它的回收,而且类文件结构确定之后,就知道整个方法当中字节码指令流转的一个情况了,所以不需要对这块区域进行关心。
2023-08-26 16:36:30 1108
原创 JVM6:JVM内存模型验证;使用visualvm查看JVM视图;Visual GC插件下载链接;模拟JVM常见错误,模拟堆内存溢出,模拟栈溢出,模拟方法区溢出
Stack Space用来做方法的递归调用时压入Stack Frame(栈帧)。所以当递归调用太深的时候,就有可能耗尽Stack Space,爆出的错误。-Xss128k:设置每个线程的堆栈大小。JDK 5以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。根据应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。
2023-08-25 21:42:19 689
原创 JOL工具类查看Java对象整体结构信息
使用JOL工具类查看对象整体结构信息。引入依赖,RELEASE版本即可,案例当前使用的RELEASE版本对应是0.17。Space losses:空间损失(内部0字节+外部0字节=总计0字节)TYPE DESCRIPTION:类型描述。object header:对象头。1198108795:表示哈希码。SZ:占用的字节量的大小。定义测试类测试打印输出。
2023-08-17 21:01:10 253
原创 JVM:JVM是抽象的计算机模型,JVM运行时数据区划分的原因;CPU的发展及衍生问题,CPU发展过程,CPU多核心数的发展由来;内存缓存一致性问题,CPU缓存一致性问题,Java多线程缓存一致性问题
如果说CPU频繁的交互不交给内存,而是交给磁盘,那么随着CPU的不断发展,CPU的运转速度会越来越快,磁盘的读写性能必定会跟不上CPU的读写速度,即使是SSD(固态硬盘)也跟不上,它相比普通硬盘也仅是减少了寻道时间,或者说是加快了找数据的时间,那么才会在此基础上设置了内存这个东西,用来解决单次IO时间过长导致CPU的等待成本过大的问题。可以看到,在CPU中间有运算核心,每个运算核心都对应了一个高速缓冲区,这个时候,中间的这个协议保证了缓存的一致性,然后再到同一块主存。3## CPU为什么要用内存进行交互?
2023-08-09 11:30:23 219
原创 JVM2:类加载机制、class文件加载方式;类加载的过程:装载、链接、初始化、使用、卸载;类加载器、为什么类加载器要分层?JVM类加载机制的三种方式:全盘负责、父类委托、缓存机制;自定义类加载器
是负责读取Java字节码代码,并且将其转换成一个java.lang.Class这样的一个实例的一个代码模块。还有一个功效是用于确定类在虚拟机中的唯一性。什么意思呢?就是一个类,在加载到同一个类加载器中具有唯一性,不同的类加载器是允许同名类存在的,而相同的类加载器是不允许同名类存在的。一个类在同一个类加载器中具有唯一性(Uniqueness),而不同类加载器中是允许同名类存在的,这里的同名是指全限定名相同。
2023-08-07 23:38:10 329
原创 jdk1.6,1.7,1.8版本方法区具体实现变化、为什么jdk1.8移除了永久代
Java官网方法区的规范和方法区的具体实现并不一样,因为这仅仅只是一个规范,是一个概念(存放方法的信息),而真正的实现会随着jdk的版本而进行优化,实现是会改名的,每个版本叫法可能并不一样。Perm Space使用的是JVM自己的内存(是JVM从系统抢占过来的内存),而Meta Space使用的直存(直接内存,也就是我们系统的可用内存)。
2023-07-24 20:03:50 909
原创 JVM5:JVM内存模型与运行时数据区的关系,堆为什么分区,分代年龄,Young区划分,Survivor区为什么分为S0和S1,如何理解各种GC:Partial GC、Full GC、Young GC
假设一个对象2M,S0和S1大小10M,第一次Young GC之后,Eden区清空,S0使用2M,在到达第二次Young GC之前,产生了大量的对象,占满了Eden区,这个时候又要进行垃圾回收,回收之后,大量的A对象沾满了S0,但是由于分代年龄没有达到阈值,因此会导致在每次GC的时候,都会在S0和S1之间来回内存复制,占据大量的S区空间,同时S区被占满,因此复制的是相同的内容,这样也使S区失去了流动性。这样肯定是不允许的。,是堆的一部分,有个别名,叫做“非堆”,目的是为了跟我们真正的Java堆区分开来。
2023-07-24 16:45:26 614
原创 JVM4:Java对象内存布局:对象头、实例数据、对齐填充;JOL查看Java对象信息;小端存储和大端存储,hashcode为什么用大端存储;句柄池访问对象、直接指针访问对象、指针压缩、对齐填充及排序
Java对象内存布局:对象头中的Class PointerJava对象内存布局:实例数据Java对象内存布局:对齐填充。
2023-07-17 21:36:36 1014
原创 JVM3:图解类装载与运行时数据区,方法区,堆,运行时常量池,常量池分哪些?String s1 = new String创建了几个对象?初识栈帧,栈的特点,Java虚拟机栈,本地方法发栈,对象指向问题
1)方法区是各个线程共享的内存区域,在虚拟机启动时创建2)虽然Java虚拟机规范把方法区描述为堆的一个逻辑部分,但是它却又一个别名叫做Non-Heap(非堆),目的是与Java堆区分开来3)用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据4)当方法区无法满足内存分配需求时,将抛出OutOfMemoryError异常。
2023-06-27 17:08:11 1010 1
原创 JVM1:官网了解JVM;Java源文件运行过程、javac编译Java源文件、如何阅读.class文件、class文件结构格式说明、 javap反编译字节码文件;类加载机制、class文件加载方式
JVM是Java虚拟机,全称Java Virtual Machine。是一个抽象的计算机器,它有一个指令集并在运行时操作内存。可以将JVM想象成是一个物理机,而一个物理机必然遵循冯诺依曼计算机模型体系。物理机接收的是0101这样的组合,因此JVM接收的也是0101这样的组合,因此输入设备这里的就是0101这样形式的。而JVM中字节码文件是作为输入设备的,这样也就可以理解为什么字节码文件是二进制文件了。Java虚拟机被移植到不同的平台上,以提供硬件和操作系统的独立性。
2023-06-05 22:52:25 1212
原创 springboot使用ECharts、ECharts html中文乱码、直接引用CDN资源文件和引用本地资源文件哪个好
如果想在Spring Boot应用程序中使用ECharts,则可以按照以下步骤操作:在Maven pom.xml文件中添加ECharts的依赖:2.创建图表创建一个包含ECharts图表的HTML页面。该页面可以使用ECharts提供的JavaScript API来配置和呈现图表。例如,创建一个名为chart.html的文件,内容如下:引入ECharts文件方式ECharts是一个JavaScript图表库,可以轻松地在HTML页面中使用。在将ECharts引入HTML文件时,有几种不同的方法可供
2023-05-11 14:56:43 1052 1
原创 Hbase1.3:Hbase基础架构、Hbase基础架构角色:Master、Region Server、Zookeeper、HDFS
Hbase对于数据的读写操作是直接访问Zookeeper的,在2.3版本推出Master Registry模式(主注册表模式,默认是直接访问Zookeeper的),客户端安可以直接访问master。使用此功能,会加大对master的压力,减轻对Zookeeper的压力。把master需要执行的任务记录到预写日志WAL中,如果master宕机,让bacpupMaster读取日志继续干。HDFS为HBase提供最终的底层数据存储服务,同时为HBase提供高容错的支持。meta表后面再研究。
2023-04-20 13:23:12 814
原创 Hbase1.2:Hbase数据模型、HBase逻辑结构、HBase基础数据模型、HBase基础数据模型拆分、HBase物理存储结构、HBase数据模型相关名词概念
与关系型数据库对比,如MySQL中数据是数据表的形式,表格再底层存储的时候,要求是比较高的,每个行与列相对应的一个表格(某行数据的某个字段),都需要留好位置,会造成存储空间的浪费。当你的列很少的时候,是可以确保里面没有空值的情况,但是大数据是百万列的,肯定会有大量空值的,因此如果使用关系型数据库存储,遇上这种大量空值的情况会浪费大量的空间,而使用BigTable这种结构,它是稀疏的,格为空,则不存,不存就不会造成空间浪费,这在大数据场景下是非常必要的。:存储和读写的基本常识就是,数据要有序。
2023-04-18 21:49:06 1164
原创 Hbase1.1:HBase官网、HBase定义、HBase结构、HBase依赖框架、HBase整合框架
Hbase是以hdfs为数据存储的,一种分布式、可扩展的NoSQL数据库(NoSQL数据库是以KV形式存储,根据key读取数据更快,同时没有关系型数据库中数据表行与列的关系,操作起来更加方便)。Hbase不是一个单词,而是合起来的简称,base指database,H可以理解为hadoop,或者是hdfs都可以。
2023-04-17 16:01:40 655
原创 3.7.2数据库系统-数据库控制技术:数据库的安全性、数据库备份与恢复技术、数据备份、数据库故障与恢复、数据库性能优化
备份的时候都会有一个时间结点去执行,比如有些喜欢计划在星期天晚上的0点或1点进行备份,但是数据库的崩溃可不看你这个时间点,一般可能出现崩溃的时间点是在两次备份过程之间,这样除了要恢复备份文件,还需要去查看日志文件,做相应的恢复操作。:可以将所有数据都备份下来,数据量大,备份时间长,效率相比于其它(差量备份/增量备份)的较慢,但是后面的,差量备份/增量备份这种,必须遵循上一次备份变化后的数据来进行备份,一般是三者相结合来使用的。:数据量小,但是如果需要恢复的时候,需要找到前一次备份的文件才能进行恢复。
2023-04-13 17:48:35 785
原创 3.7.1数据库系统-数据库控制技术:并发控制、事务、事务的ACID特性、事务并发产生的问题、丢失更新、不可重复读、读脏数据、封锁协议解决事务并发问题
在做应用看来发设计以及相关过程的时候,数据库是必不可少的,要想让数据库当中的数据达到应用的要求,必须对它进行控制,主要包括:并发控制、性能优化、数据库完整性约束、安全性控制、数据库备份以及恢复。
2023-04-08 22:03:52 1548 1
原创 3.6.3数据库系统-模式分解:是否保持函数依赖、保持函数依赖分解定义、无损分解、表格法、公式法
设数据库模式ρ={R1,R2,…,Rk}是关系模式R的一个分解,F是R上的函数依赖集,ρ中每个模式Ri上的FD集是Fi。如果{F1,F2,…,Fk}与F是等价的(即相互逻辑蕴涵),那么称分解ρ保持FD。
2023-04-07 21:17:13 8817 1
原创 3.6.2数据库系统-范式判断:范式分类、第一范式、第二范式、第三范式、BC范式
简单属性,就是原子的,不可再分的,复合属性可以划分成更细小的一些取值,一般认为,在没有说明的情况下,属性都是不可再分的,如果有说明,比如姓名,正常不说就是存name即可,如果有说明按姓,名分别去存,对应就是表两列,first_name,last_name,这样可以再细分的就是复合属性,向常见的记录地址的省市区街道,也可以按复合属性去再分。考虑的部分函数依赖是非主属性对候选键的部分函数依赖,而没有非主属性,则说明没有这部分依赖,也就是说,消除了非主属性对候选键的部分函数依赖,满足2NF。
2023-04-07 15:46:29 8555 1
原创 3.6.1数据库系统-规范化理论:非规范化存在的问题、规范化理论基本概念、函数依赖、键、求候选键、求候选键实例、函数依赖、Armstrong公理
如果集合A的任意一个元素都是集合B的元素(任意a∈A则a∈B),那么集合A称为集合B的子集,记为A⊆B或 B⊇A,读作“集合A包含于集合B”或集合B包含集合A”。即:∀a∈A有a∈B,则A⊆B。
2023-03-27 15:57:18 1406
原创 3.5数据库系统-关系代数、自然连接、性能问题
σ1=4(π1,2,3,5(S1×S2)),(S1×S2)先两个表做笛卡尔积,然后投影π1,2,3,5,选择列进行展示,然后σ1=4筛选数据,这时,由于重复字段,所以4表示的是StuClass这个字段,不是S2的StuId,所以这个表达式是错的。②在考虑提升SQL语句性能的时候,或者是关系代数新能的时候,会尽可能的取压缩运算表,也就是小表驱动大表,同时需要笛卡尔积的时候,尽可能在不影响结果的情况下,先进行数据筛选,减少笛卡尔积的数据量,从而提高性能。元组行个数是同时满足,相同属性列必须同时取值相等。
2023-03-23 15:48:06 1536 1
html5基于Bootstrap响应式企业博客后台模板
2022-04-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人