8 wangxiaoming

尚未进行身份认证

我要认证

博客是很好的总结和记录工具,如果有问题,来不及回复,关注微信公众号:程序员开发者社区,获取我的联系方式,向我提问,也可以给我发送邮件,联系 1275801617@qq.com

等级
TA的排名 2k+

怎么给字符串加索引

怎么给字符串加索引比如说,要给邮箱这样的字段加索引,这样长字符串加索引会有什么样的问题?前缀索引,如果长度长,会浪费大量的空间,同时增加额外的查询成本。create table SUser(ID bigint unsigned primary key, email varchar (64)...)Engine=innodb;如果使用邮箱登录,这样会出现这样的语句:select f1 ,f2 from Suser Where emial='xxx';如果 email 不建索引,那么就

2020-09-20 10:37:35

Redis 为什么这么快?

Redis 为什么这么快?Redis 是 NoSQL 数据库,key-Value 数据库,键值数据库会使用 hash 表存储值和数据。 Redis 全称是 Remote Dictionary Server ,是用字典存储数据,也就是 key-value 类型的数据。Redis 查询效率很高,为什么这么快?Redis 采用的是 ANSI C 语言编写,采用 C 语言编写的好处是底层代码执行效率高。依赖性低,使用 C 语言开发的库没有太多运行时(Runtime)依赖,并且系统兼容性好,稳定性高。Re

2020-09-19 14:54:25

Kafka 原理简介

Kafka 原理简介Kafka 是一种高吞吐的分布式发布订阅的消息系统,可以处理消费者规模的网站中的动作流数据,具有高性能的,持久化,多副本,横向扩展能力。https://www.cnblogs.com/sujing/p/10960832.htmlKafka 的组成结构Kafka 的基础架构图:Producer Producer 生产者,消息的生产者。kafka clusterBroker : Broker 是 kafka 的实例,每个服务器有一个或者多个 Kafka实例。Kaf

2020-09-01 10:55:43

阿里巴巴开发手册为啥推荐: 若是 static 成员变量,必须考虑是否为 final ?

阿里巴巴开发手册为啥推荐: 若是 static 成员变量,必须考虑是否为 final ?18. 【推荐】final 可以声明类、成员变量、方法、以及本地变量,下列情况使用 final 关键字: 1. 不允许被继承的类,如:String 类。 2. 不允许修改引用的域对象,如:POJO 类的域变量。 3. 不允许被重写的方法,如:POJO 类的 setter 方法。 4. 不允许运行过程中重新赋值的局部变量。 5. 避免上下文重复使用一个变量,使用 final 描述可以强制重新定义一个变量

2020-08-19 09:54:53

康托展开公式与在全排列中应用

康托展开公式X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0!怎样知道其中一种排列是有序序列中的第几个?康托展开. {1…n}的全排列由小到大有序,s[]为第几个数{1,2,3,4,…,n}的排列总共有n!种,将它们从小到大排序,怎样知道其中一种排列是有序序列中的第几个?如 {1,2,3} 按从小到大排列一共6个:123 132 213 231 312 321。想知道321是{1,2,3}中第几个大的数。这样考虑:第一位是3,小于3的

2020-08-18 15:38:24

LeetCode 5 题解

LeetCode 5 题解给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"思路: 动态规划动态转移方程dp[i][j] = dp[i+1][j-1] && (s[i]==s[j])边界条件:当只有一个字符时候dp[i][i+0] = true当有两个字符时:dp[i][i+1] =(s[i

2020-08-17 11:17:48

Spring 是如何解决循环依赖的?

Spring 是如何解决循环依赖的?循环依赖:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传Spring 循环依赖有三种情况:构造器的循环依赖,这种依赖 Spring 无法处理,直接抛出 BeanCurrentlyInCreationException 异常单例模式下的 setter 循环依赖,可以通过三级缓存处理非单例循环依赖,无法处理,BeanCurrentlyInCreationException 异常构造器循环依赖正要创建的 bean 记录在缓存中,Spr

2020-08-13 00:35:43

面向对象、设计原则、设计模式、编程规范、重构

面向对象、设计原则、设计模式、编程规范、重构面向对象主流的三个编程风格有:面向对象,面向过程,函数式编程。面向对象是最主流的风格,面向对象具有丰富的特性(封装,抽象,继承,多态)。面向对象面向对象的4大特性:封装、继承,抽象、多态。面向对象编程与面向过程的区别和联系面向对象分析,面向对象设计、面向对象编程接口和抽象类的区别与各自的应用场景基于接口实现的编程的设计思想多个组合少用继承的设计思想多面向过程的贫血模型和面向对象的充血模型设计原则设计原则是指导我们代码设计的一些总结,设

2020-08-10 21:42:02

布隆过滤器

布隆过滤器布隆过滤器拥有极高的性能,无论是写入操作还是读取操作,时间复杂度是O(1)。在空间上相对于其他数据结构,有很大优势, 20亿的数据需要 2000000000bit/8/1024/1024 = 238 M ,如果使用数组来存储,假设每个用户 ID 占用 4个字节的空间,存储20亿用户需要 2000000000byte/4/8/1024/1024 = 7600M 的空间,是布隆过滤器的32倍。布隆过滤器(Bloom Filter)hash 函数布隆过滤器的缺点在判断元素是否在集合中

2020-08-01 11:44:26

缓存穿透了怎么办?

缓存穿透了怎么办?对应缓存来说,命中率是它的生命线。在缓存命中率低的情况下,大量查询请求会穿透缓存到数据库,因为数据库对于并发的承受能力有限,一旦数据库承受不了大量查询任务,就会导致查询变慢,导致大量的请求阻塞在数据库查询上,造成应用服务器的连接和线程资源被占满,最终导致系统崩溃。什么是缓存穿透缓存穿透,其实是指从缓存中没有找到数据,不得已查询数据库的情况。少量的缓存穿透没问题,主要由如下几点原因:一方面,缓存系统在容量上有限,不可能所有的数据都存储在缓存中另外一方面,互联网系统遵守 8/2

2020-07-30 22:12:31

接口和抽象的使用场景

接口和抽象的使用场景抽象和接口的区别总的来说,是抽象是为了代码复用,接口是为了解耦。抽象抽象类不允许被实例化,只能被基础,也就是说,不能 new 一个抽象类抽象类可以包含方法和属性,方法可以包含实现,也可以不实现。不实现的方法叫做抽象方法子类继承抽象,必须实现抽象类中的方法。接口接口不能包含属性接口只能声明方法,方法不能包含代码实现类实现接口的时候,必须实现接口中声明的所有方法。抽象类说明的是 is-a 的关系,接口表示的是一种 Has-a 的关系。抽象类和接口能解决什么问题

2020-07-22 23:49:14

深入理解数据库原理

GitChat 10个免费名额 ,先到先得!

2020-07-22 15:08:42

软件设计思想:池化技术

软件设计思想:池化技术先举个例子一种简单的架构:前端一台 Web 服务器运行业务代码,后端一台数据库服务器存储业务数据。系统上线时,用户量不大,运行平稳,但是随着流量的提升,系统访问速度会变慢。分析日志后,发现系统慢的原因是出现在系统库的交互上,因为数据调用的方式是首先获取数据库的连接,然后依靠这个连接,查询数据库的数据,最后释放数据库资源。为什么频繁创建连接响应会变慢?整个 MySQL 创建连接过程主要分成两个部分:第一部分是采用建立 TCP 连接。通过三次握手 建立 TCP 连接。

2020-07-21 00:00:05

什么是事务隔离

什么是事务隔离事务简单的来说是保证一组数据库操作,要么全部成功,要么全部失败。MySQL 中事务支持是在引擎实现的, MySQL 原生的 MyISAM 引擎不支持事务,这也是 MyISAM 被 InnoDB 引擎取代的重要原因。隔离性与隔离级别提到事务, 数据库为了保证事务,必须具备四个特性:ACID,原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)事务的四个特性原子性 (Atomicity)事务操作,要么全部做完

2020-07-19 12:27:54

系统设计:如何让系统高可用?

系统设计:如何让系统高可用?系统的高可用性是指系统具备较高的无故障运行的能力。很多开源组件中可以看到 HA 方案就是提升组件的可用性,让系统免于宕机无法服务的方案。举个例子, Hadoop 1.0 中 NameNode 是单点的,一旦发生故障则整个集群不可用,Hadoop 2.0 时 ,采用的是两个 NameNode. 一个状态是Active,一个状态是 Standy 状态,两者共享存储。一旦 Active NameNode 发生故障,Standy NameNode 切换成 Active 状态继续提供

2020-07-16 19:30:33

系统设计:如何让系统容易扩展?

系统设计:如何让系统容易扩展?一个高可扩展性指标,表示可以通过增加机器的方式来线性提高系统的处理能力,从而承担更高的流量或者并发数。在单机系统中通过增加处理核心数来增加系统的并行处理能力,但是这个方法并不总生效,随着并行的任务增多,系统会因为争夺资源而达到性能上的拐点。系统性能会不升反降。多台机器组成的机器系统也类似,在集群系统中,不同的分层也存在一些瓶颈。制约横向扩展能力。举个例子,系统的流量是每秒1000次请求,对数据库请求也是 1000次/s ,单独如果流量增加10倍,系统可以扩容,正常提供服

2020-07-15 09:06:38

数据库原理: Change Buffer 是干什么的?

数据库原理: Change Buffer 是干什么的?redo log 主要节省的是随机写磁盘的 IO 消耗(转成顺序写),而 change buffer 主要节省的是随机读磁盘的IO消耗。实例:插入过程插入语句insert into t(id,k) values(id1,k1),(id2,k2);假设当前 k 索引树的状态,查找到位置后,K1 所在的数据页在内存(InnoDB buffer pool)中,K2 所在的数据页不在内存中。包含 几个部分:内存、redo log(ib_log

2020-07-12 11:44:14

公钥 私钥 签名 验签 说的啥?

公钥 私钥 签名 验签 说的啥?公钥加密,私钥解密 私钥签名,公钥验签散列算法散列算法,也叫做哈希函数,是从一个任何一种数据中创建小的数字方法,散列函数把消息或者数据压缩成摘要,有时候也叫做摘要算法。 把数据量变小,将数据的格式固定下来。常用的算法有:MD5 SHA1MD5MD5 不是一种加密算法,是一种摘要算法,无论多长的输入, MD5 都会输出长度为 128bits 的一个串。public static final byte[] computeMD5(byte[] content) {

2020-07-11 15:28:02

MySQL 普通索引和唯一索引该如何选择?

MySQL 普通索引和唯一索引该如何选择?普通索引和唯一索引在查询能力上没啥差别,主要考虑对更新性能的影响,要尽量选择普通索引。接下来分析两种索引在查询语句和更新语句对性能的影响。查询过程MySQL InnoDB 是采用 B+ 树实现其索引结构。B+ 树的查找过程如上图所示:现在需要查找 29 这个值。将磁盘块1从磁盘加载到内存,发生一次IO ,在内存中使用二分查找方式找到 29在17和35 之间,锁定磁盘块1的P2 指针。通过磁盘块1 的 P2 指针地址把磁盘块3 加载到内存,发生第二

2020-07-09 21:58:46

SQL 中的聚集函数?

SQL 中的聚集函数?SQL 函数包含了算术函数,字符串函数,日期函数,转换函数。还有一函数,叫做聚集函数。SQL 聚集函数是对一组数据进行汇总的函数,输入是一组数据的集合,输出是单个值。有哪些聚集函数SQL 中的聚集函数,有最大值,最小值,平均值。Count 使用例子:查询heros 中hp_max 大于6000 的英雄。SELECT COUNT(*) FROM heros WHERE hp_max > 6000运⾏结果为41。想要查询最⼤⽣命值⼤于6000,且有次要定位的英雄数量

2020-07-06 21:08:09

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 领英
    领英
    绑定领英第三方账户获取
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证(专家版)
    技术圈认证(专家版)
    博客专家完成年度认证,即可获得
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 博客之星-入围
    博客之星-入围
    授予每年博客之星评选结果第21-200名的用户
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 原力探索 · S
    原力探索 · S
    在《原力计划【第二季】》打卡挑战活动中,发布 12 篇原创文章参与活动的博主,即可获得此勋章。(本次活动结束后统一统计发放)