- 博客(16)
- 资源 (1)
- 收藏
- 关注
原创 mysql---事务管理
事务就是一组DML语句组成,这些语句在逻辑上存在相关性,这一组DML语句要么全部成功,要么全部失败,是一个整体。MYSQL提供一种机制就是事务,保证我们达到这样的效果。举个例子:买票系统,当客户端1检查还有一张票的时候,将票卖掉,还没有执行更新数据库的时候,客户端检查了票数仍然是大于0.于是又卖了一次,然后A将票数更新回数据库,这时候就出现了同一张票被卖了多次。事务的基本操作例子:...
2019-07-23 21:49:19 175
原创 项目文件快速搜索神器
快速搜索神器项目代码:github地址1.调研实现背景在linux环境下有非常好用的find命令,查找文档非常的高效,但是在windows下文件夹框下是默认的暴力遍历查找,非常的慢。此搜索神器就是为了解决这个问题,为了快速的查找到查找的文件或者目录。2.项目实现目标以及框架实现目标就是为了查找文件或者目录能够快速地查找到,另外它能够支持拼音搜索,拼音首字母搜索,拼音汉字混合搜索...
2019-07-21 11:35:18 817
原创 mysql---数据库的索引特性
索引:提高数据库的性能,索引是物美价廉的东西了。不用加内存,不用改程序,不用调sql,只要执行正确的create index ,查询速度就可能提高成百上千倍。但是天下没有免费的午餐,查询速度的提高是以插入、更新、删除的速度为代价的,这些写操作,增加了大量的IO。所以它的价值,在于提高一个海量数据的检索速度。常见的索引分为:主键索引(primary key)唯一索引(unique)普通索引...
2019-07-18 10:47:45 215
原创 linux---select,poll,epoll的原理以及优缺点
多路转接IO(也叫IO多路复用)是一种处理高并发的IO事件监控,同时对大量的描述符进行时间监控,监控是否具备IO条件。就绪:包括了读就绪事件(就是有数据到来的时候),写就绪事件(缓冲区有空闲的空间),异常事件(发生异常)。对于服务器来说,很多时候我们都是监控的读事件,对于写事件和异常事件都只会在特定的情况下使用。selectselect模型:通过对几个事件集合中的描述符进行事件监控,当集合...
2019-07-12 17:13:49 815
原创 linux---五种高级IO模型
阻塞IO模型非阻塞IO模型信号驱动IO模型异步IO模型多路转接IO模型高级IO重要概念阻塞IO模型在内核将数据准备好,系统调用会一直等待,所有的套接字默认都是阻塞IO方式阻塞IO是最常见的IO模型非阻塞IO模型非阻塞IO往往需要程序员循环的方式反复尝试读取文件描述符,这个过程称为轮询,这对于cpu来说的话是较大的浪费,一般只有特定的场景下才能使用信号驱动IO...
2019-07-12 15:44:30 201
原创 mysql---表的增删改查(六)
6. 表的增删改查6.1 Create语法:INSERT [INTO] table_name[(column [, column] ...)]VALUES (value_list) [, (value_list)] ...value_list: value, [, value] ...案例:– 创建一张学生表**CREATE TABLE students (id IN...
2019-07-11 10:55:03 212
原创 HTTP常见面试题
个人总结,请勿转载。URL统一资源定位符:就是标识网络中资源的路径。HTTP超文本传输协议。是一个基于TCP/IP通信协议来传递信息HTTP原理HTTP协议工作与客户端-服务端架构上,浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。根据接收到的请求后,向客户端发送响应消息。HTTP默认端口是80,但是也可以进行更改。HTTP注意事项HTT...
2019-07-10 00:05:19 1126
原创 c++---菱形继承
单继承:一个子类只有一个父类时称为单继承多继承:一个子类有两个或者两个以上时这个继承关系为多继承菱形继承是多继承的一种特殊情况在继承中子类会继承父类的所有的成员,可以看出菱形继承有数据冗余和二义性的问题。Assistant中会有Person的两份数据。#include <iostream>#include <string>using namespace s...
2019-07-09 10:59:45 208
原创 c++---类型转换
C语言中的类型转换C++强制类型转换为什么需要强制类型转换RTTI一,C语言中的类型转换在C语言中分为了两种类型转换,一种是隐式类型转换,但是隐式类型转换是相邻类型之间才可以进行隐式类型转换,比如我们的char可以转为int,这两种都是表示数值的。第二种是强制类型转换,强制类型转换需要在前面声明我们需要转换的。比如将int类型转换为int*#include <iostream...
2019-07-07 10:32:16 175
原创 c++---模板(下)
非类型模板参数类模板的特化类型萃取模板的分离编译非类型模板参数模板参数分类类型形参:出现在模板参数列表中,跟在class或者typename之后的参数类型名称。非类型形参:就是用常量作为类(函数)的一个参数,在类(函数)模板中可将该参数当成常量来使用namespace fw{ template<class T, size_t N = 10> class...
2019-07-06 22:45:44 135
原创 mysql---表的约束(五)
5. 表的约束真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。表的约束很多,这里主要介绍如下几个: null/not null,default, comment, zerofill,primary key,auto_increment,unique key 。5.1 空属...
2019-07-06 17:31:37 2294
原创 mysql---数据库数据类型(四)
4. 数据类型4.1 数据类型分类4.2 数值类型4.2.1 tinyint类型数值越界测试:创建一张新表create table tt1(num tinyint);插入新的数据 insert into tt1 values(1);再插入一个越界的数据insert into tt1 values(128); -- 越界插入,报错会出现下面的错误ERROR 1264...
2019-07-02 15:57:24 463
原创 mysql---表的操作(三)
3. 表的操作3.1 创建表语法:CREATE TABLE table_name (field1 datatype,field2 datatype,field3 datatype) character set 字符集 collate 校验规则 engine 存储引擎;说明:field 表示列名datatype 表示列的类型character set 字符集,如果没...
2019-07-02 15:27:16 114
原创 c++---异常
C语言传统的处理错误的方式C++异常概念异常的用法自定义异常体系标准库异常体系异常的优缺点C语言传统的处理错误的方式传统的错误处理机制终止程序,比如assert,虽然能够及时的终止程序,但是用户难以接受,比如除0的时候我们只需要提示用户输入错误,不需要终止程序返回错误码,但是错误码不能够及时的让程序员明白是什么错误,需要自己去查询什么错误。C语言标准库中的setjmp...
2019-07-24 23:33:04 146
原创 c++---继承
在继承这块我们从新下面的几个点去剖析c++中的继承继承的概念和定义基类和派生类对象赋值转换继承中的作用域派生类成员的默认成员函数继承和友元继承与静态成员继承的概念和定义继承的概念继承机制是面向对象程序设计使代码可以复用的最重要的手段,他允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生的类称为派生类。继承呈现了面向对象程序设计的层次结构,体现了简单到复杂的...
2019-07-08 23:47:37 124
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人