精华内容
下载资源
问答
  • OpenResty 常见几种数据共享的方法
    千次阅读
    2021-01-29 14:02:37

    1. Nginx 中的变量

    可以在 Nginx C 模块之间共享数据,也可以在 C 模块和 OpenResty 提供的 lua-nginx-module(将Lua的功能嵌入到Nginx HTTP服务器中) 之间共享数据。

    例子:

    location /foo {
       
         set $my_var ''
    更多相关内容
  • 提供了Java实现几种常见排序方法和原理介绍
  • 几种常见的加密方式

    千次阅读 2020-10-09 15:26:03
    网络上最常见的用于传输8位字节代码的编码方式之一,可在HTTP环境下传递较长的标识信息。一般用于URL的处理,或者说任何你不想让普通人一眼就知道是啥的东西均可以使用Base64编码处理后在发布在网络上。 特点:具有...

    现代密码学最重要的原则:柯克霍夫原则,即数据的安全基于密钥而不是算法的保密。

    1.BASE64
    网络上最常见的用于传输8位字节代码的编码方式之一,可在HTTP环境下传递较长的标识信息。一般用于URL的处理,或者说任何你不想让普通人一眼就知道是啥的东西均可以使用Base64编码处理后在发布在网络上。

    特点:具有不可读性,即所编码的数据不会被直接看到

    2.MD5
    即Message-Digest Algorithm5(信息-摘要算法5),用于确保信息传输完整一致

    信息摘要:通过一个算法是固定数据产生一个特定的信息摘要

    将数据运算为另一固定长度值,由一个单向Hash加密函数对消息进行作用而产生。HASH函数的抗冲突性使得如果一段明文稍有变化,即使只更改该段落的一个字母,通过哈希算法作用后都将产生不同的值。HASH算法的单向性使得要找到哈希值相同的两个不同的输入消息,在计算上是不可能的,因此数据的哈希值,即消息摘要可以检验数据的完整性。广泛用于加密和解密技术

    3.SHA
    即Secure Hash Algorithm(安全哈希算法),主要用于数字签名标准里面定义的数字签名算法。

    算法思想:接受一段明文呢,然后以一种不可逆的方式将其转换为一段密文,也可简单的理解为去一串输入码将其转化为长度较短、位数固定的输出序列即散列值的过程

    4.HMAC
    即Hash Message Authentication Code(散列消息鉴别码),基于密钥的Hash算法的认证协议。

    算法原理:用公开函数和密钥产生一个固定长度的值作为认证标识,用这个标识鉴别消息的完整性。使用一个密钥生成一个固定大小的小数据块,即MAC,并将其加入到消息中,然后传输。

    5.对称加密
    采用单钥密码系统加密方法,同一个密钥可以同时用作信息的加密和解密。

    特点:计算量小、加密速度快、加密效率高

    6.非对称加密
    采用两个密钥来进行加密和解密,分别是公钥和私钥。若使用公钥对数据进行加密,则只有使用对应的私钥才能解密,反之亦然。

    展开全文
  • sql优化常用的几种方法

    千次阅读 2022-03-06 05:45:01
    注意,常见的不太友好的值,如下:Using filesort,Using temporary。 2.SQL语句中IN包含的值不应过多 MySQL对于IN做了相应的优化,即将IN中的常量全部存储在一个数组里面,而且这个数组是排好

    1.EXPLAIN

    type列,连接类型。一个好的SQL语句至少要达到range级别。杜绝出现all级别。
    key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式。
    key_len列,索引长度。
    rows列,扫描行数。该值是个预估值。
    extra列,详细说明。注意,常见的不太友好的值,如下:Using filesort,Using temporary。
    

    2.SQL语句中IN包含的值不应过多

    MySQL对于IN做了相应的优化,即将IN中的常量全部存储在一个数组里面,而且这个数组是排好序的。但是如果数值较多,产生的消耗也是比较大的。再例如:select id from t where num in(1,2,3) 对于连续的数值,能用between就不要用in了;再或者使用连接来替换。

    3.SELECT语句务必指明字段名称

    SELECT*增加很多不必要的消耗(CPU、IO、内存、网络带宽);增加了使用覆盖索引的可能性;当表结构发生改变时,前断也需要更新。所以要求直接在select后面接上字段名。

    4.当只需要一条数据的时候,使用limit 1

    这是为了使EXPLAIN中type列达到const类型
    如果加上limit1,查找到就不用继续往后找了

    5.如果排序字段没有用到索引,就尽量少排序

    可以在程序中排序

    6.如果限制条件中其他字段没有索引,尽量少用or

    or两边的字段中,如果有一个不是索引字段,而其他条件也不是索引字段,会造成该查询不走索引的情况。很多时候使用union all或者是union(必要的时候)的方式来代替“or”会得到更好的效果。

    7.尽量用union all代替union

    union和union all的差异主要是前者需要将结果集合并后再进行唯一性过滤操作,这就会涉及到排序,增加大量的CPU运算,加大资源消耗及延迟。当然,union all的前提条件是两个结果集没有重复数据。

    8.区分in和exists、not in和not exists

    select * from 表A where id in (select id from 表B)

    上面SQL语句相当于

    select * from 表A where exists(select * from 表B where 表B.id=表A.id)

    区分in和exists主要是造成了驱动顺序的改变(这是性能变化的关键),如果是exists,那么以外层表为驱动表,先被访问,如果是IN,那么先执行子查询。所以IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况。

    关于not in和not exists,推荐使用not exists,不仅仅是效率问题,not in可能存在逻辑问题。如何高效的写出一个替代not exists的SQL语句?

    原SQL语句:

    select colname … from A表 where a.id not in (select b.id from B表)

    高效的SQL语句:

    select colname … from A表 Left join B表 on where a.id = b.id where b.id is null

    取出的结果集如下图表示,A表不在B表中的数据
    在这里插入图片描述
    http://www.changchenghao.cn/n/174426.html

    前提,开启慢sql

    一、慢查询
    默认情况下slow_query_log的值为OFF,表示慢查询日志是禁用的,可以通过设置slow_query_log的值来开启,如下所示:
    1、查询慢日志是否开启。
    show variables like ‘%slow_query_log%’;

    2、开启慢查询日志(OFF 为关闭 ON为开启)
        set global slow_query_log=ON;
    
    注意:使用set global slowquerylog=1开启了慢查询日志只对当前数据库生效,MySQL重启后失效。如果要永久生效,就必须修改配置文件my.cnf
    
    3、永久开启慢查询日志
    修改my.cnf文件,增加或修改参数slow_query_log 和slow_query_log_file后,然后重启MySQL服务器,
        slow_query_log =1
        slow_query_log_file=/usr/local/mysql/data/localhost-slow.log
    

    4、设置日志路径和未使用索引的查询(有默认值,可以不设置)
    log-slow-queries = /usr/local/mysql/data/slow.log #定义慢查询日志路径。
    log-queries-not-using-indexes #未使用索引的查询也被记录到慢查询日志中(可选)。

    二、慢查询时间设置。默认情况下long_query_time的值为10秒,可以使用命令修改,也可以在my.cnf参数里面修改。
    1、查询慢日志时间。
    show variables like ‘long_query_time’;
    注:如果设置了日志时间,对当前会话是无效的。所以用全局查询
    show global variables like ‘long_query_time’;

    2、设置慢查询日志时间。
        set global long_query_time=3;
    
    3、查看总执行了多少次慢sql
        show global status like '%slow%';   
    

    explain

    http://www.cnitblog.com/aliyiyi08/archive/2008/09/09/48878.html

    https://www.cnblogs.com/tufujie/p/9413852.html

    sql优化15点

    1. 避免使用select *
    2. 用union all 代替union
    3. 小表驱动大表
    4. 批量操作
    5. 多用limit
    6. in中值太多
    7. 增量查询
    8. 高效的分页
    9. 用链接查询代替子查询
    10. join数量不宜过多
    11. join时需要注意
    12. 控制索引的数量
    13. 选择合理的字段类型
    14. 提升group by的效率
    15. 索引优化

    1.避免使用select *

    实际业务场景中不需要所有的字段,只需要其中一两个,只查找用到

    1. 浪费数据库资源,内存,cup
    2. 查出来的数据多,通过网络IO传输过程中也会增加传输时间
    3. select * 不会走覆盖索引,会出现回表

    2.用union all 代替union

    union会排重
    排重过程需要遍历,排序,比较,更消耗cpu资源
    确定唯一,没有重复数据能用union all尽量用

    3.小表驱动大表

    in 的话里面驱动外面,in适合里子查询是小表
    exist 的话外面驱动里面,适合外面是小表

    4.批量插入

    mybatis plus 的insertBatch
    当然一次插入量也不能太大,可以分批插入。

    5.多用limit

    6.in中值太多

    查询出来数量太大,限制一次最大查询条数

    还可以,多线程查询,最后把查询出来的数据汇总。

    7.增量查询

    select name,age from user where id>#{lastId} limit 100;
    查询比上次id 大的100条

    8.高效的分页

    select id,name,age from user limit 10000, 20;
    

    mysql会查询10020条,然后丢弃前面10000条,这个比较浪费资源

    可以优化:

    select id,name,age from user id>10000 limit 20;
    

    找到上次分页最大id

    假如id是连续的,并且有序,可以用between
    注意: between要在唯一索引上分页,不然会出现每页大小不一致问题。

    9.用连接查询代替子查询

    MySQL如果需要在两张以上表中查询数据的话,一般有两种实现方式

    1. 子查询
    2. 连接查询
    select * from order where user_id in (select id from user where name='zhang'); 
    

    子查询可以通过in实现,优点:这样简单,
    但缺点是,MySQL执行子查询时,需要创建临时表,查询完成后再删除临时表,有一些额外开销。
    可以改成连接查询:

    select o.* from order o inner join user u on o.user_id = u.id where u.name='zhang'; 
    

    10.join表不宜过多

    阿里巴巴开发者手册规定,join表不宜超过3个

    如果join太多,MySQL在选择索引时会非常复杂,很容易选错索引。
    并且没有命中,nested loop join 就会分别从两个表读一行数据进行对比,时间复杂度n^2。

    11.join时需要注意

    join用的最多的时left join 和 inner join
    left join:两个表的交集和左表的剩余数据
    inner join:两个表的交集

    inner join mysql会自动选择小表驱动,
    left join 左边的表驱动右边的表

    12.控制索引数量

    索引不是越多越好,索引需要额外的存储空间,B+树保存索引,额外的性能消耗。
    阿里巴巴开发者手册中规定,单表索引数量尽量控制在5个以内,且单个索引字段数量控制在5个以内。

    13.选择合理的字段类型

    char:固定字符串类型,该类型在的字段在存储空间上是固定的,固定长度的可以用
    varchar:变长字符串类型

    1. 能用数字类型就不用字符串,字符串处理速度比数字类型慢
    2. 尽量用小类型,比如:用bit存布尔值,用tinyint存枚举值等。
    3. 长度固定字符串用char,不固定用varchar

    14.提升group by效率

    主要功能去重,分组
    先过滤数据,减少数据,再分组

    select id, name ,age from user
    group by id
    having id <50; 
    

    这种写法就不好,

    select id, name ,age from user
    where id <50
    group by id; 
    

    15.索引优化

    强制走哪个索引
    force index

    select * from user 
    force index(索引)
    
    展开全文
  • 详细讲解特征码修改常见几种方法.语音加操作超详细。
  • echarts 最常见几种样式(可能是修改频率最高的),欢迎补充~ 柱状图柱宽度 坐标轴字体颜色 隐藏坐标轴刻度线 图表位置设定 网格线样式 折线图点样式 折线图下方区域渐变

    echarts 最常见的几种样式(可能是修改频率最高的),欢迎补充~

    柱状图柱宽度

    
    series:{
        barWidth: '8px',
    }
    
    

    坐标轴字体颜色

    // yAxis/xAxis attr
    axisLabel: {
      textStyle: {
        color: '#938258'
      }
    }
    

    隐藏坐标轴刻度线

    // yAxis/xAxis attr
    axisLine : {show: false},
    

    图表位置设定

    grid: {
      left: '3%',
      right: '4%',
      bottom: '3%',
      containLabel: true // 外框包含刻度数据
    }
    

    网格线样式

    // yAxis/xAxis 属性
      splitLine: {
        lineStyle: {
          color: 'rgba(255,255,255,0.1)'
        }
      },
    

    折线图点样式

    series : [ {
    symbol:'circle'
    }]
    支持的类型
    ECharts 提供的标记类型包括 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow', 'none'
    

    折线图下方区域渐变

      areaStyle: {
        color: new this.$echarts.graphic.LinearGradient(
          0, 0, 0, 1,
          [
            { offset: 0, color: 'rgba(7, 128, 182, 0.5)' }, // 柱图渐变色
            { offset: 0.5, color: 'rgba(7, 128, 182, 0.3)' }, // 柱图渐变色
            { offset: 1, color: 'rgba(7, 128, 182, 0)' } // 柱图渐变色
          ]
        )
      }
    

    柱状图圆角及宽度

    series: [
                {
                    name: '数量',
                    type: 'bar',
                    data: barData,
                    barWidth: 14, // 柱宽度
                    itemStyle: {
                        normal: {
                            barBorderRadius: 7 // 圆角
                        }
                    }
            ]
    

    柱状图渐变

    下方的前四个参数设置为0, 0, 1, 0可以实现从左到右渐变. 设置为0,0,0,1可以实现从上到下渐变。

    srties: [
                itemStyle: {
                    normal: {
                        barBorderRadius: 7,
                        color: new echarts.graphic.LinearGradient(
                            0, 0, 1, 0,
                            [
                                {offset: 0, color: '#3977E6'},
                                {offset: 1, color: '#37BBF8'}
    
                            ]
                        )
                    }
                }
            ]
    

    legend文字颜色

    legend: {
      textStyle: {
        color: 'white'
      },
    }
    

    END

    展开全文
  • 常见的乐观锁实现方式有几种

    千次阅读 2021-01-19 07:33:23
    常见的乐观锁实现方式,分别是:1、版本号机制;2、CAS算法。其中,通过版本号机制实现乐观锁是最经典的方法。版本号机制一般是在数据表中加上一个数据库版本号version字段。实现方式:(推荐学习:mysql教程)1...
  • 防止过拟合的几种常见方法

    万次阅读 2018-08-14 17:13:18
    防止过拟合的处理方法 何时会发生过拟合?    我们都知道,在进行数据挖掘或者机器学习模型建立的时候,因为在统计学习中,假设数据满足独立同分布(i.i.d,independently and identically distributed),即...
  • 常见几种加密算法比较

    千次阅读 2020-09-04 10:58:48
    “加密”,是一限制对网络上传输数据的访问权的技术。原始数据(也称为明文,plaintext)被加密设备(硬件或软件)和密钥加密而产生的经过编码的数据称为密文(ciphertext)。将密文还原为原始明文的过程称为解密,它...
  • 数据仓库常用几种建模方法

    万次阅读 2019-02-18 14:43:31
    数据模型是抽象描述现实世界的一工具和方法,是通过抽象的实体及实体之间联系的形式,来表示现实世界中事务的相互关系的一映射。在这里,数据模型表现的抽象的是实体和实体之间的关系,通过...
  • 几种常见锁的理解

    千次阅读 2018-07-23 10:48:22
    几种常见锁的理解: 悲观锁:在每次取数据时,总是担心数据会被其他线程修改,所以会在取数据前先加锁(读锁,写锁,行锁等),当其他线程想要访问数据时,被阻塞挂起。可以依靠数据库实现,如行锁,读锁,写锁等...
  • 常见几种寻址方式

    千次阅读 2020-05-18 21:23:09
    定义:寻址方式就是处理器根据指令中给出的地址信息来寻找有效地址的方式,是确定本条指令的数据地址以及下一条要执行的指令地址的方法。 引入:在存储器中,操作数或指令字写入或读出的方式,地址指定方式、相联...
  • 【开发经验】几种常见的加密方式

    千次阅读 2020-11-01 09:31:07
    文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 每个人都自己小秘密,这些秘密肯定是不想轻易...示例:pandas 是基于NumPy 的一工具,该工具是为了解决数据分析任务而创建的。 二、使用
  • 几种常见的校验算法

    千次阅读 2020-06-13 20:52:54
    关注、星标公众号,不错过精彩内容素材来源:网络编辑整理:strongerHuangUART一个奇偶校验,CAN通信CRC校验。Modbus、MAVlink、USB等通信协议也校验信...
  • vlan的几种划分方式

    万次阅读 2018-03-17 16:25:13
    port link-type access 修改端口模式为access port default vlan 2 为端口打上相应的vlan标志 基于mac地址的划分: vlan 3 创建vlan3 mac-vlan mac-address 0000-0000-1111 绑定vlan和mac地址的对应关系 int g0/...
  • 几种常见的负载均衡方式

    千次阅读 2018-07-13 21:12:46
    DNS负载均衡:DNS是最简单也最常见的负载均衡方式,一般用来实现地理级别的均衡,比如,北方的用户访问北京的机房,南方的用户访问上海的机房。DNS的本质是一个域名可以在DNS中对应多个IP地址,不同地域的用户在请求...
  • 负载均衡的几种常见方式

    万次阅读 2018-08-02 00:26:07
    这种方法,所有的真实服务器和负载均衡服务器都相同的IP地址,不用修改IP数据包的目的地址和源地址,只通过修改MAC地址就可以达到效果,因为请求的IP地址和实际处理的真实服务器的IP地址一致,所以不需要回到负载...
  • 几种请求方式

    千次阅读 2021-07-31 23:01:49
    post请求可能会导致新的资源的建立或已资源的修改。put:从客户端向服务器传送的数据取代指定的文档的内容。delete:请求服务器删除指定的页面。connect:HTTP/1.1协议中预留给能够将连接改为管道方式的代理...
  • 虚拟机ping不通的几种常见解决方法

    万次阅读 多人点赞 2020-10-02 18:27:38
    配置虚拟机网络是搭建Hadoop集群的关键一步,但是这里很容易出现故障,为此,这篇博客介绍了几种常见ping异常的解决方法 Ⅰ,虚拟机与虚拟机不相通 我们在测试网络的时候,首先需要测试能不能连接到同一网段的虚拟机...
  • 几种常见的软件开发模型分析

    千次阅读 2019-09-11 17:36:46
    概述 软件开发模型(Software Development Model)是指软件开发全部过程、活动和任务的...对于不同的软件系统,可以采用不同的开发方法、使用不同的程序设计语言以及各种不同技能的人员参与工作、运用不同的管理方法...
  • 一、简介 XML(eXtensible Markup Language)指可扩展标记语言,被设计用来传输和存储数据,已经日趋成为当前许多新生技术的核心,在不同的领域都有着不同的... python解析XML常见种方法:一是xml.dom.*模...
  • 什么是XSS攻击?XSS攻击有哪几种类型?

    千次阅读 2021-08-17 16:01:14
    XSS攻击有哪几种类型?今天小编为大家讲解一下。 什么是XSS攻击? XSS攻击又称为跨站脚本,XSS的重点不在于跨站点,而是在于脚本的执行。XSS是一种经常出现在Web应用程序中的计算机安全漏洞,是由于Web应用程序对用户...
  • java中遍历Map的几种常见方式

    千次阅读 2017-03-30 17:06:49
    java中遍历Map的几种常见方式,如下: 第一种: 通过遍历键取值(效率低) Map map = new HashMap(); map.put("a","1"); map.put("b","2"); map.put("c","3"); for (String str : map.keySet()) {
  • 缓慢变化维的几种常见解决方法

    千次阅读 2013-01-24 14:02:37
    缓慢变化维的几种常见解决方法: 第一种方法,直接在原来维度的基础上进行更新,不会产生新的记录: 1) 更新前:  emp_rid(代理键) emp_id(自然键) emp_name position  101212 12345 Jack Developer ...
  • java中StringBuffer几种常用方法

    千次阅读 2021-03-04 05:46:38
    StringBuffer类和String一样,都...StringBuffer的方法与String很多都是相同的,但是同样存在的区别导致很多学员会将两者搞混,下面java技术指导老师来为大家详细介绍java中StringBuffer几种常用方法。1、append方法...
  • 种常见系统架构 —— 进阶篇

    万次阅读 2020-06-04 15:58:51
    常见几种系统架构设计,接下来讲后面三个: 1、单库单应用架构:最简单的,可能大家都见过 2、内容分发架构:目前用的比较多 3、读写分离架构:对于大并发的查询、业务 4、微服务架构:适用于复杂的业务模式的拆解...
  • Python中修改字符串的几种方法

    千次阅读 多人点赞 2019-02-18 20:23:47
    微信公众号 1. Python中字符串的特点 在Python中,字符串是...2. Python中常见修改字符串的方法 2.1 将字符串转换成列表后修改值,然后用join组成新字符串 &gt;&gt;&gt; name = 'Microstrong' ...
  • 几种常见进程间通信(IPC)方式-共享存储 前言 进程间通信是指在不同进程之间传播或...常见的通信方式以下几种: 管道pipe 有名管道FIFO 消息队列MessageQueue 共享存储 信号量Semaphore 信号Signal 套接字Socket...
  • 什么是作用域?几种常见的作用域详解

    万次阅读 多人点赞 2020-04-21 16:12:28
    几乎所有编程语言就是在变量中存储值,并且能读取和修改此值。事实上,在变量中存储值和取出值的能力,给程序赋予了状态。...常见的作用域主要分为个类型:全局作用域、函数作用域、块状作用域、动态作...
  • 404常见几种错误原因

    万次阅读 2018-01-11 12:45:48
    1. 访问项目,但是项目没有部署到tomcat服务器.报404,重新部署项目 2. 在浏览器地址栏路径输入错误(比如...修改Context root值就好了.不过,高级版本的编辑软件会自动处理这个问题 4.服务器没有启动或者启动报错

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 606,909
精华内容 242,763
关键字:

常见的修改方法有哪几种