09 2021 档案
摘要:数据库性能 数据库性能:一般在系统中,性能问题,数据库会先凸显出来! 业务量增大、数据量增大! 解决方法 1.加强硬件,定制商业数据库! 花钱! 2.从架构层面去解决,通常的手段就是让数据库少做事!(直接去掉存储过程,外键,函数,触发器),同时添加索引! 3.数据库负载均衡!使用多台数据库,做一台数
阅读全文
摘要:https://www.bilibili.com/video/BV1oh411B75r?p=44
阅读全文
摘要:重写分析器 lucene.net中每个分词器都是一个类,同时有一个辅助类,这个辅助类完成分词的大部分逻辑。分词类以Analyzer结尾,辅助类通常以Tokenizer结尾。分类词全部继承自Analyzer类,辅助类通常也会继承CharTokenizer,比如说有新需求,希望我们加一个逗号分词器: n
阅读全文
摘要:关系型数据库的尴尬事儿 1.= 2.<> 3.Like 用户在关系型数据库查询字符串"中华人名共和国 "的时候,其实无法绝对准确的指定关键字;因为在关系型数据库中要想查某个字符串在文本中是否存在,用的是like,但是like有很大的局限性,比如: 上图是全部数据,比如我们查中华人民共和国,但是如果用
阅读全文
摘要:阅读目录 开始 第一部分,界面截图 调用数据访问层的代码 Ajax演示代码 组件性能测试 用户手册,API文档 对于SQL Server的优化来说,优化查询可能是很常见的事情。由于数据库的优化,本身也是一个涉及面比较的广的话题, 因此本文只谈优化查询时如何看懂SQL Server查询计划。毕竟我对S
阅读全文
摘要:网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。 这篇文章我花费了大量的时间查找资料、修改、排版,希望大家阅读之后,感觉好的话推荐给更多的人,让更多的人看到、纠正以及补充。 1.对查询进行优化,要尽量避免全表扫描,首先应
阅读全文
摘要:概述:程序访问优化也可以认为是访问SQL语句的优化,一个好的SQL语句是可以减少非常多的程序性能的,下面列出常用错误习惯,并且提出相应的解决方案 一、操作符优化 1. IN、NOT IN 操作符 IN和EXISTS 性能有外表和内表区分的,但是在大数据量的表中推荐用EXISTS 代替IN 。 Not
阅读全文
摘要:该图描述了整个数据库的所有结构; 描述了一个T-SQl执行的时候发生的全过程 1.客户端 2.协议 3.关系引擎 4.存储引擎(硬盘) 5.缓存区 执行T-SQL的流程 数据库是独立的应用程序,所以客户端和数据库之间肯定需要一层协议,约定以什么样的数据进行交流 ,所以客户端在执行T-SQL的时候会以
阅读全文
摘要:触发器 触发器是一种特殊类型的存储过程,触发器主要是通过事件进行触发被自动调用执行的。 参考博客: SqlServer基础之触发器 SqlServer触发器详解 DDL触发器 游标 游标:游动的标识!能从多条记录中精确的定位到某一条记录!进行处理。基本上不用它! 自定义函数 标量函数 标量函数返回的
阅读全文
摘要:事务 多条sql作为一个整体提交给数据库系统,要么全部执行完成,要么全部取消。是一个不可分割的逻辑单元。 ACID a) (Atomic )原子性:要么都成功 要么都失败 c) (Consistency)一致性:事务执行完,数据都是正确 i) (Isolation)隔离性:两个事务同时操作一张表(一
阅读全文
摘要:三大范式 三大范式补充理解 第一范式:具有原子性 之前做开发的时候就遇到一个问题,一个列里面存储了一个Json信息,里面包含了用户,性别等信息,这就明显不符合第一范式,因为这列明显可以再拆分出来用户名,性别等其它列。 第二范式:主键列与非主键列遵循完全函数依赖关系 非主键列必须通过主键(包括联合主键
阅读全文
摘要:依赖倒置原则 依赖倒置原则:上层模块不应该依赖于低层模块,二者应该通过抽象依赖,就是说应该依赖于抽象,而不是依赖于细节,面向抽象编程。 看下面的代码: 学生类: public class Student { public int Id { get; set; } public string Name
阅读全文
摘要:六大原则 1. 单一职责原则(Single Responsibility Principle) 2. 里氏替换原则(Liskov Substitution Principle) 3. 迪米特法则 (Law Of Demeter) 4. 依赖倒置原则(Dependence Inversion Prin
阅读全文
摘要:WebSocket 1.基于Html5,IIS8.0版本以上,前端代码和服务器都必须支持WebSocket才能使用; 2.请求必须以WS:开头 下面是后台接收前端websocket申请的方法: /// <summary> /// WebSocket建立链接的方法 /// </summary> ///
阅读全文
摘要:1 流程 2 示例 看下面一个服务器端的代码: namespace MyScoketTest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } /// <summary> /// 开始监听
阅读全文
摘要:1:什么是Socket? Socket又被称之为"套接字",是计算机之间通信的一种约定或者方式,通过这种约定,计算机之间可以相互发送数据。 2:本质是什么? 实际上是对TCP/IP协议的封装,它的出现方便了程序员使用TCP/IP协议栈,本身不是协议。可以看做是传输层和应用层之间抽象出来的一层,是一组
阅读全文
摘要:1 数据结构类型 线型结构:一对一,比如:ArrayList ,List,数组等。 在内存中是连续存储的,所以节省内存,读取快 但是删除新增慢。 代码: //1.节省内存 读取快 删除新增慢 #region Array 数组 { //Array:在内存上连续分配的,而且元素类型是一样的 //可以坐标
阅读全文
摘要:1 七层模型 2 TCP/IP四层模型 3 五层模型: (1)实体层(物理层) 比如有网线,电缆,双绞线;蓝牙等这些物理界存在的这些硬件 (2)链接层(数据链路层) A,B,C,D代表了不同的实体设备,如果A要给B传信息(可以理解为0和1的电信号),首先需要先广播,,A带上自己的mac地址,将广播信
阅读全文
摘要:1. sqlserver和.net面试题 2 第二个面试题连接 C#中String和StringBuilder的区别 最后全部整理进来 其他人整理的面试题1 什么是webapi,ef,ado.net 深入理解C#的IEnumerable和IQueryable两接口的区别 数据结构面试题 数据结构进阶
阅读全文
摘要:谈谈对通信加密解密的理解。 .Net中的加密解密 MD5 不可逆加密 MD5严格意义上不算加密算法,加密算法应该能加密也能解密。 1 通过原文得到密文 ,但是密文不能得到原文。 自定义一个MD5算法类: namespace MyEncrypt { /// <summary> /// 不可逆加密 //
阅读全文
摘要:案例1:比如说有时候我们需要将一些实体转换成另一个实体,并且相互之间没有什么继承关系,不能直接转换。 基础类: namespace MapperDemo { /// <summary> /// 数据库实体类Student /// </summary> public class Student { p
阅读全文
摘要:开发中用到过的特性: Serializable特性的讲解 为什么要用Serializable特性 英[ˈsɪərɪəlaɪzəbl WebMethod Obsolete 英[ˈɒbsəliːt] Authorize HttpPost HttpGet (MVC Api) AttributeUsage:
阅读全文
摘要:参考地址 新建的子线程可以是前台线程或者后台线程,前台线程必须全部执行完,即使主线程关闭掉,这时进程仍然存活。后台线程在未执行完成时,如果前台线程关掉,则后台线程也会停掉,且不抛出异常。也就是说,前台线程与后台线程唯一的区别是后台线程不会阻止进程终止。可以在任何时候将前台线程修改为后台线程。 在C#
阅读全文
摘要:异步多线程 : await/async是一个语法糖,不是一个全新的异步多线程的使用方式。它本身不会产生新的线程,它是依托于Task存在,所以在实际程序运行过程中是有多线程的,这些多线程是有Task产生的。 如果一个方法没有返回值,可以用下面方法写,下面中的2个方法是等价的: public async
阅读全文
摘要:先看一个例子: /// <summary> /// 多线程安全 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSafe_Click(object sender
阅读全文
摘要:需求:比如说开始一个项目,首先拆分模块交给不同的人干,全部干完之后进行整合测试,项目完结。其中拆分模块之后每个人都做不同的工作,这是完全可以并行操作的,所以可以使用多线程,比如: 代码: /// <summary> /// Task专题解析 /// </summary> /// <param nam
阅读全文
摘要:1. 计算机概念 进程:应用程序在服务器上运行时占用的资源合集。进程之间互不干扰 线程:程序执行的最小单位,响应操作的最小执行单位。线程也有属于自己的计算资源,一个进程有多个线程。 多线程:一个进程中有多个线程在并发执行。 2.c#定义 多线程Thread类:是.netFramework对线程对象的
阅读全文
摘要:LINQ和EF区别 EF全名entityframework,它是一个对象关系映射ORM框架。让开发者可以像操作领域对象(domain-specific objects)那样操作关系型数据(relational data)。减少了大部分通常需要编写的数据操作代码。可以使用LINQ来查询数据,使用强类型
阅读全文
摘要:优先队列 比如现实生活中的排队,就符合这种先进先出的队列形式,但是像急诊医院排队,就不可能按照先到先治疗的规则,所以需要使用优先队列。 实现优先队列其实都是基于下面这些实现的:可以看出来实现优先队列最好的方式就是二叉堆。 (1)二叉堆本质上是一种完全二叉树 比如下面2棵树,左边的树是完全二叉树,右边
阅读全文
摘要:首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同。在简单形式化一下,如果Ai = Aj,Ai原来在位置前,排序后Ai还是要在Aj位置前。 其次,说一下稳定性的好处。排序算法如果是稳定的,那么从一个键上排序,然后再从另一
阅读全文
摘要:1.快速排序是对冒泡排序的一种改进,是所有内部排序算法中平均性能最优的排序算法 首先我们要先找一个基准值4,让在4左边的都是小于4的数,在4右边的都是大于4的数。比如下面arr数组中索引在l到j之间的都是小于4的,索引在j+1到i-1之间都是大于4的。 如果想要让整个数组都变成有序的,那就需要进行递
阅读全文
摘要:归并排序 定义:将2个以及2个以上的有序表组合成一个新的有序表。(这里按照升序) 如上图数组arr分成了2个有序表,分别是{2,3,4,8}和{1,4,5,7} :首先2和1比,1小,所以i++,1放入新数组temp中,i指向4,4大于2,2放入temp中,l++,指向3,3和4比,3小,所以3放在
阅读全文
摘要:插入排序 如下图:如果此时要插入元素7,那么7比10小,10后移,然后7与5比,7比5大,所以7不用再移动位置 定义: 插入排序是指在待排序的元素中,假设前面n-1(其中n>=2)个数已经是排好顺序的,现将第n个数插到前面已经排好的序列中,然后找到合适自己的位置,使得插入第n个数的这个序列也是排好顺
阅读全文
摘要:1.算法描述 在一个长度为 N 的无序数组中,第一次遍历 n-1 个数找到最小的和第一个数交换。 第二次从下一个数开始遍历 n-2 个数,找到最小的数和第二个数交换。 重复以上操作直到第 n-1 次遍历最小的数和第 n-1 个数交换,排序完成。 简单来说就是在一个数组中先找到最小的值和第一个元素进行
阅读全文
摘要:定义 冒泡排序:就是将一个数组中的元素按照从大到小或者从小到大的排序进行排列。 比如数组:3,4,2,1,0,5 按照从小到大进行排序。 首先3和4比,如果4大,所以位置不换,4与2比,4大,所以4与2换位置,此时数组为:3,2,4,1,0,5 。依次对比最终结果是3,2,1,0,4,5 这是第一次
阅读全文