天道酬勤,学无止境

博客

组合查询——UNION

组合查询:MySQL允许执行多个查询(多条SELECT语句),并将结果作为单个查询结果集返回。这种组合和查询也成为并(union)或复合查询 一、使用组合查询UNION 可用UNION操作符来组合数条SQL查询, 举一个例子:查询价格小于5的商品的一个列表,而且还想包括供应商1001和1002生产的所有物品。先利用WHERE子句来完成此工作。 SELECT vend_id,prod_id,prod_price FROM products WHERE prod_price <= 5 OR vend_id IN(1001,1002) 接下来,我们可以利用组合查询实现此功能,UNION指示MySQL执行两条SELECT语句,并把输出合成一个结果集 SELECT vend_id,prod_id,prod_price FROM products WHERE prod_price <= 5 UNION SELECT vend_id,prod_id,prod_price FROM products WHERE vend_id IN(1001,1002) 二、包含取消重复的行 UNION从查询结果集中自动去掉了重复的行,这是默认行为,因为UNION总是完成与多个WHERE子句条件相同的工作。想返回所有匹配的行,可以使用UNION ALL SELECT vend_id,prod_id,prod

2021-06-13 06:52:19   

Transformers 从pytorch-pretrained-bert迁移 | 十

作者|huggingface 编译|VK 来源|Github 这是从pytorch-pretrained-bert迁移到transformers时应注意的事项的快速摘要。 模型始终输出tuple 从pytorch-pretrained-bert迁移到transformers时,主要的突破性变化是模型forward方法始终根据模型和配置参数输出带有各种元素的tuple。 每个模型的元组的确切内容在模型的文档字符串和文档(https://huggingface.co/transformers/)中进行了详细说明。 在几乎每种情况下,你都可以通过将输出的第一个元素用作先前在pytorch-pretrained-bert中使用的输出来正常工作。 这是BertForSequenceClassification分类模型的pytorch-pretrained-bert到transformers的转换示例: # 让我们加载模型 model = BertForSequenceClassification.from_pretrained('bert-base-uncased') # 如果你以前在pytorch-pretrained-bert中使用此行: loss = model(input_ids, labels=labels) #

2021-06-13 06:52:15   

RangeError: Invalid array length 问题解决

今天写项目的时候,报错出了这样的错误 RangeError: Invalid array length 在网络上找了一些资料发现,是v-for语句出现了问题。然后在检查时发现是提供的数据不为整数所导致的。 <div v-for="itemx in (hostProduct.length/4)" :key="itemx"> 因为hostProduct.length/4不一定会被整除,所以会有余数产生的情况,只要把结果取整就可以了。还有提供的数据不为0也会报同样的错误。 <div v-for="itemx in parseInt(hostProduct.length/4)" :key="itemx" > 拓展: 1、可以用 v-for 指令基于一个数组来渲染一个列表 <ul id="example-1"> <li v-for="item in items" :key="item.message"> {{ item.message }} </li> </ul> var example1 = new Vue({ el: '#example-1', data: { items: [ { message: 'Foo' }, { message: 'Bar' } ] } }) 2、可以用 v-for 来遍历一个对象的属性 <ul id="v-for-object" class="demo">

2021-06-13 06:52:11   

如何入门Python,让小白在10分钟之内彻底了解python

如何入门Python?Python简直是万能的,你有用Python都做过哪些事? 相信好多程序员都是用网页看各大网站的VIP视频,用python下载? 用Python玩跳一跳,跳到50000分? 逢年过节各大亲友群、红包群抢红包还用Python? 倘若问一句今年最火的一门编程语言是什么?答案一定是Python。 这把火已经烧到了程序员的圈子外,从小学生到职场老司机,都开始学习这一门新的语言,门槛低、零基础、操作骚...再也没有什么能阻挡Python晋升网红。 俗话说外行看热闹,内行看门道,我们已经知道了python的火热情况,但是学一门编程语言是需要花大量精力的,所以我们最关心的还是: “对于如何入门Python?学习python有什么用?” 1.趋势:互联网行业发展势头正猛 大家可以根据下面的图“2017中国互联网企业100强业务类型”就可以看出,其中用Python分析大数据、游戏、人工智能三大行业现在是呈现高速增长趋势。 在2017年“中国互联网企业100 强”的数据中显示,用Python分析大数据、游戏以及人工智能等相关企业占比近80%,这些都有益于Python语言的广泛应用,同时又进一步掀起了Python语言的学习热潮。 2017 中国互联网企业 100 强业务类型 image 数据来源:公开资料、智研咨询整理 在现在而言Python被誉为了最好的人工智能语¨

2021-06-13 06:52:07   

汉诺塔问题求解办法

汉诺塔问题古老的历史,我们在实际中就不去纠结了,直接看大致描述:有三个柱子,分别为A,B,C,在A柱子上,有n个从大到小堆在一起的盘子,现在要借助B柱子,把A上面的盘子,全部移动到C柱子上,移动的过程中,需要保证大盘子在下面,小盘子在大盘子的上面。类似这样的效果: 汉诺塔问题的求解是需要借助于递归方法来实现的。 这里假设有一个盘子,那么直接就是从A移动到C柱子即可。A->C 如果有两个盘子,那么需要先将小盘子移动到B柱子上,接着将大盘子从A移动到C柱子,然后移动B上的盘子到C上。A->B A->C B->C。 如果有三个盘子,那么就稍微复杂一点了。需要考虑将两个小的盘子移动到B上面,然后将最大的盘子从A上面移动到C上面,最后再来将两个B上面的盘子移动到C上面。到了这里,基本的递归思路可以产生了: 1、就是我们不管前面有多少个盘子,就是需要将A上面除了最大的盘子之外的所有n-1个盘子借助C移动到B。 2、然后移动A柱子上最大的盘子到C柱子(A->C),这时候,就无需再考虑最大盘子的移动了,就是剩下的n-1个盘子,怎么把他们从B移动到C上面。 3、我们需要借助的柱子变成了A,因为A上面没有盘子了,问题变成了B柱子借助A柱子,将n-1个盘子移动到C柱子。 伪代码: hanoi(n,A,B,C){ hanoi(n-1,A,C,B); // n-1 个小盘子借助C移动到B上

2021-06-13 06:52:03   

HTTP强缓存与协商缓存详解

浏览器缓存在前端性能优化是个非常重要的点,第一次接触强缓存和协商缓存的概念的时候也是一头雾水,经过一轮面试背诵加理解终于有点感悟,希望以下的梳理对你有一定帮助。 缓存: 缓存是一种保存资源副本并在下次请求时直接使用该副本的技术。当 web 缓存发现请求的资源已经被存储,它会拦截请求,返回该资源的拷贝,而不会去源服务器重新下载。 优点:缓解服务器端压力,提升性能(减少网页加载速度),提高用户体验。 浏览器缓存: 浏览器缓存是浏览器在本地对用户最近请求过的文档进行存储,当访问者再次访问同一页面时,若文件未过期或未修改(下面我们用新鲜一词代替,感觉挺形象的),浏览器就可以直接从本地加载文档。 而强缓存和协商缓存就是判断文件是否新鲜从而决定本次请求的资源要直接从本地获取还是去服务器重新下载的具体实现。 请求资源时浏览器怎么知道是强缓存还是协商缓存? 用户首次请求并获取到该资源后,根据返回的信息来告诉如何缓存资源,可能采用的是强缓存,也可能告诉客户端浏览器是协商缓存,这都需要根据响应的header内容来决定。 强缓存: (1)过程 用户请求访问过的资源,浏览器拦截请求,查看该资源的强缓存相关header字段来判断资源是否过期,若未过期即命中强缓存,直接从本地获取资源来展示给用户,若没有命中强缓存,则从服务器重新加载资源或进入协商缓存流程(如果资源同时设置了强缓存和协商缓存) (2

2021-06-13 06:52:00   

Windows下使用VScode远程ssh密钥连接到linux服务器

Windows下使用VScode远程ssh密钥连接到linux服务器 前言 我们平时在连接远程云服务器的时候,可能是用putty 或者 xShell 进行连接,然后再进行编程工作,然而,强大好用的VsCode可以直接帮助我们远程连接上服务器。(免密登录) ssh密钥登录的原理: A是将自己本身的公钥发送到 B的 authorized_keys 中,那么 B也就认识了A, A就可以像B的老熟人一样,A每次登录B时,自动出示A自己的私钥,那么B就放A进来了。 原理 ssh采用非对称密钥算法,本地客户端创建好自己的公钥和私钥,将 本地客户端的公钥 放置在 远程服务器 上面; 之后登录的时候,客户端发送自己的 公钥和询问请求,远程服务器 先搜索有没有该公钥,有的话那么用该公钥对 询问请求进行加密,再发送给客户端; 如果客户端能够用本地私钥 解开 远程服务器 的信息,并将信息返回给 远程服务器,那么服务器即可让其远程登录。 操作 在windows端使用cmd窗口生成密钥,生成命令如下: ssh-keygen -t rsa -C "worthy" 其中-t代表密钥类型为rsa类型, -C 为注释。 同时注意生成密钥的地方必须就是在用户(我的是Worthy)下面,自动生成.ssh 文件, id_rsa 是私钥 , id_rsa.pub 是公钥。 将公钥导入到linux 用户(我的是wwx)的

2021-06-13 06:48:51   

mongodb 3.4 集群部署

mongodb 3.4 集群搭建:分片+副本集 mongodb是最常用的nosql数据库,在数据库排名中已经上升到了前六。这篇文章介绍如何搭建高可用的mongodb(分片+副本)集群。 在搭建集群之前,需要首先了解几个概念:路由,分片、副本集、配置服务器等。 相关概念图 从图中可以看到有四个组件:mongos、config server、shard、replica set。 mongos,数据库集群请求的入口,所有的请求都通过mongos进行协调,不需要在应用程序添加一个路由选择器,mongos自己就是一个请求分发中心,它负责把对应的数据请求请求转发到对应的shard服务器上。在生产环境通常有多mongos作为请求的入口,防止其中一个挂掉所有的mongodb请求都没有办法操作。 config server,顾名思义为配置服务器,存储所有数据库元信息(路由、分片)的配置。mongos本身没有物理存储分片服务器和数据路由信息,只是缓存在内存里,配置服务器则实际存储这些数据。mongos第一次启动或者关掉重启就会从 config server 加载配置信息,以后如果配置服务器信息变化会通知到所有的 mongos 更新自己的状态,这样 mongos 就能继续准确路由。在生产环境通常有多个 config server 配置服务器,因为它存储了分片路由的元数据,防止数据丢失! shard,分片

2021-06-13 06:48:47   

处理图片跨域问题

<meta name="referrer" content="no-referrer"/> 来源:https://pengshiyu.blog.csdn.net/article/details/105557504

2021-06-13 06:48:43   

k8s (一) --- Kubernetes介绍及部署(v1.18.1)

Kubernetes介绍及部署 一、认识Kubernetes -- k8sKubernetes是什么?Kubernetes 特点使用Kubernetes能做什么?Kubernetes 设计架构 二、Kubernetes的一些重要概念三、Kubernetes集群部署实验准备安装 kubelet、kubeadm 和 kubectl用 kubeadm 创建 Cluster添加 node1 和 node2补充:移除NODE节点的方法添加已删除节点忘掉token再次添加进k8s集群 一、认识Kubernetes – k8s Kubernetes是什么? Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。 Kubernetes的名字来自希腊语,意思是“舵手” 或 “领航员”。K8s是将8个字母“ubernete”替换为“8”的缩写。 通过Kubernetes你可以: 快速部署应用快速扩展应用无缝对接新的应用功能节省资源,优化硬件资源的使用 Kubernetes的目标是促进完善组件和工具的生态系统,以减轻应用程序在公有云或私有云中运行的负担。 Kubernetes 特点 可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)可扩展: 模块化, 插件化, 可挂载, 可组合自动化: 自动部署,自动重启,自动复制,自动伸缩

2021-06-13 06:48:40