- 博客(28)
- 问答 (1)
- 收藏
- 关注
原创 高性能mysql第一章——架构
第一章 架构1.1 mysql逻辑架构mysql服务器逻辑架构图如上图所示。第一层为连接/线程处理层。每个客户端连接mysql服务器,都会拥有一个线程。服务器会缓存线程,因此无需为每一个连接新建或释放线程。mysql5.5以上的版本还提供了线程池,可以用少量线程服务大量连接。当客户端连接到服务器时,服务器需要对其认证,根据用户名主机名密码等信息,确定客户端是否有查询/更新某个数据库内某张表...
2019-03-19 11:17:37
4696
原创 可爱的编码——ASC、Unicode、UTF-8、GBK
字符集ASCIIASC编码是现今最通用的 单字节 编码系统,包含英文字母、数字、特殊字符等。它的最高位称作奇偶校验位,用来校验传输过程中编码是否出现错误。奇校验 字节中1的个数为奇数,如果不是则最高位置1偶校验 字节中1的个数为偶数,如果不是则最高位置1UnicodeUnicode为 每种语言 中的 每个字符 设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文...
2018-10-29 17:04:07
1347
原创 fluent python笔记——元组
一、元组有很多人会将元组看作不可变的列表,这完全忽略了元组的巨大作用。元组是对数据的记录,正是因为它不可变的特性,让它成为记录数据的强大工具。一个元组对应着一条数据,一条数据包含多个元素。我们通过元素独一无二的位置来获取我们需要的信息。1. 元组拆包平行赋值person = ('fancy', 18, 'cute')name, age, dis = person ...
2018-07-27 14:22:59
254
原创 fluent python笔记——数据模型
数据模型python最好的品质之一就是一致性,当使用python工作一会儿之后,就可以正确的猜出语句的意思。而这都归功于python的数据模型。数据模型其实是对python框架的描述,它规范了这门语言自身 构建模块 的接口,这些模块包括序列、迭代器、函数、类和上下文管理器。python解释器遇到特殊句法时,会使用特殊方法激活对象的基本操作,这些特殊方法的格式为:__xxx__。比如ob...
2018-07-18 17:30:38
558
原创 SQLAlchemy
SQLAlchemy一、 什么是SQLAlchemy?SQLAlchemy是Python一款非常强大的ORM软件。对象关系映射(Object Relational Mapping,简称ORM)是通过使用描述对象和数据库之间映射的元数据,将面向对象语言程序中的对象自动持久化到关系数据库中。二、 怎么用?1. 连接准备建立连接from sqlalchemy ...
2018-07-11 15:51:02
1090
原创 Network——TCP/IP协议三次握手四次挥手
我们都知道,TCP/IP协议是面向连接的协议,即客户端与服务器建立连接之后,在连接断开之前都可相互传送数据。所谓三次握手与四次挥手,是客户端与服务器之间建立连接的过程。我们先来看一下TCP报文的格式。Seq序号:即图中的32位序号,标识发送方 向 接收方发送的字符流Ack序号:即图中的32位确认序号,只有当ACK=1时,序号才有效SYN:发起一个连接ACK:确认序号有效F...
2018-04-21 16:03:46
327
原创 C++的55个条款——实现
实现大多数情况下,设计类以及函数是花费精力最多的两件事。一旦设计正确,相应的实现大多直截了当。但对于实现,依然有许多需要注意的问题。条款26:尽可能延后变量定义式的出现时间只要我们定义了一个类类型的变量,那么当程序的控制流到达这个变量时,便要承受构造它的成本;当程序的控制流离开这个变量时,便要承受析构它的成本,即使这个变量没有被使用过。我们应该尽量避免这些情况。合理的做法就...
2018-04-11 12:30:44
573
原创 C++的55个条款——设计与声明
设计与声明本章主要讲解 C++接口的良好设计与声明条款18:让接口容易被正确使用,不易被误用①想要开发一个“容易被正确使用,不易被误用”的接口,首先必须考虑客户可能做出什么样的错误。比如我们为一个表现日期的类设计一个构造函数。class Date{public: Date(int d,int m,int y):day(d),month(m),year(y...
2018-03-30 17:09:18
408
原创 C++的55个条款——资源管理
资源管理所谓资源就是,一旦用了它,将来必须归还给系统。C++程序中最常用的资源就是动态分配内存,但内存只是我们要管理的众多资源之一。其他常见的资源包括:文件描述器、互斥锁、数据库连接、网络socket。接下来我们将学习基于对象的资源管理方法,建立在C++对构造函数、析构函数、copying函数的基础上。当我们严格按照这些条款来做的时候,几乎可以消除资源管理的问题。条款13:以对...
2018-03-20 18:08:39
466
原创 C++的55个条款——构造/析构/赋值运算
构造/析构/赋值运算条款05:了解C++默认编写并调用哪些函数什么时候空类不再是一个空类了呢?当C++处理之后就不再是了,编译器会自动为它声明一个编译器版本的默认构造函数、合成拷贝构造函数、合成拷贝赋值运算符、析构函数。只有当这些函数被调用时,才会被编译器创建出来。默认构造函数和析构函数,将调用基类和成员变量的默认构造函数及析构函数。需要注意的是,编译器合成的析构函数不是虚函数,只...
2018-03-19 18:07:32
209
原创 旅行商问题——贪心算法
旅行商问题(TSP)旅行商问题是一个经典的组合优化问题。经典的TSP问题可以描述为:一个商品推销员要去若干个城市进行商品推销,该推销员从一个城市出发,需要经过所有城市,回到出发地。应如何选择行进路线,以使总的行程最短。从图论的角度来看,该问题实质是在一个带权完全无向图中,找一个权值最小的Hamilton回路。由于该问题的可行解是所有顶点的全排列,随着顶点数的增加,会产生组合爆炸。...
2018-03-06 14:01:50
8754
7
原创 C++基础的不能再基础的学习笔记——面向对象程序设计(二)
在前面的学习中,我们了解到了面向对象程序设计的一些基础知识,接下来我们继续学习相关内容。http://blog.youkuaiyun.com/fancynece/article/details/79398653一、访问控制与继承protected成员如前所述,一个类使用protected关键字来声明那些希望与派生类共享但是不能被用户访问的成员。protected成员对于类的用户是不可...
2018-03-02 23:39:16
249
原创 C++基础的不能再基础的学习笔记——面向对象程序设计(一)
面向对象程序设计在很多程序中都存在着一些,相互关联但是有细微差别的概念。例如:书店中不同书籍的定价策略可能不同:有的书籍按照原价卖,有的书籍打折销售,有时我们为购买书籍超过一定数量的顾客打折,有时只对前多少本销售的书籍打折等等。面向对象的程序设计(OOP)适用于这类应用。一、OOP概述面向对象程序设计(OOP)的核心思想是:数据抽象、继承、动态绑定。数据抽象 : 将类的实现和...
2018-03-02 15:51:13
275
原创 C++基础的不能再基础的学习笔记——拷贝控制示例(二)
拷贝控制示例我们在之前的博客上了解到了,需要管理资源的类通常要定义拷贝控制操作、swap操作。http://blog.youkuaiyun.com/fancynece/article/details/79346314但是,①资源管理并不是一个类需要定义自己的拷贝控制成员的唯一原因。一些类需要拷贝控制成员的帮助来进行②簿记工作或其他操作。我们通过一个例子来说明,簿记工作需要拷贝控制成员。定义...
2018-02-27 20:47:08
243
原创 C++基础的不能再基础的学习笔记——拷贝控制(一)
拷贝控制当定义一个类时,我们显示地或隐式地指定此类型对象 拷贝、移动、赋值和销毁时做什么。一个类通过定义五种特殊的成员函数来控制这些操作,称为拷贝控制操作。拷贝构造函数:用同类型对象初始化时的操作移动构造函数:用同类型对象初始化时的操作拷贝赋值运算符:用同类型对象赋值时的操作移动赋值运算符:用同类型对象赋值时的操作析构函数:此类型对象销毁时的操作在定义任何C++类时,拷...
2018-02-24 20:38:37
389
原创 C++基础的不能再基础的学习笔记——关联容器
关联容器之前我们已经学习了顺序容器:http://blog.youkuaiyun.com/fancynece/article/details/79193881而关联容器和顺序容器有着根本的不同:顺序容器中的元素是按元素在容器中的位置顺序保存和访问的,关联容器中的元素是按关键字来保存和访问的。 关联容器类型 元素 按关键字有序保存元素 map 键值...
2018-02-14 21:49:32
278
原创 C++基础的不能再基础的学习笔记——顺序容器(其他操作)
顺序容器顺序容器基本操作:http://blog.youkuaiyun.com/fancynece/article/details/79193881我们已经对容器的公有操作和顺序容器的操作有了一定的了解,接下来,我们要进一步学习顺序容器。一、vector、string对象的增长通常情况下,我们不必关心一个标准库类型是如何实现的,但是对于vector和string来说, 部分实现渗透到了接口
2018-02-02 20:41:31
392
原创 C++基础的不能再基础的学习笔记——顺序容器(基本操作)
顺序容器在前面我们已经了解到,容器就是某类对象的集合。顺序容器 访问元素的顺序与元素加入时的位置相对应,即顺序访问元素,但同时向容器中添加和删除元素、非顺序访问元素都要付出代价。一、顺序容器概述我们所熟悉的vector、deque(双端队列)、list(双向链表)、forword_list(单向链表)、array(固定大小的数组)、string、堆、栈等都是顺序容器。新标准
2018-01-31 18:04:55
362
原创 C++基础的不能再基础的学习笔记——类型转换
类型转换一、隐式转换int ival = 3.14 + 3;在执行上述语句时,编译器先将int类型的3转换为double类型,之后相加,再将所得结果转换为int类型初始化ival。显然,这里的类型转换无须程序员的介入,称之为隐式转换。1. 算术转换算数转换就是将一种算术类型(宽度小的)转换为另一种算术类型(宽度大的)。整型提升整型提升负责把 小整数类型 转换成
2018-01-26 20:52:02
206
原创 C++基础的不能再基础的学习笔记——类(二)
类在上一章中http://blog.youkuaiyun.com/fancynece/article/details/79143021, 我们了解了类的一些基础知识,接下来,对类做进一步的探究。一、类成员再探1. 自定义类型别名在类中,我们可以为数据类型定义别名而使代码更清晰简洁。class Screen {public: typedef string::size_
2018-01-25 21:57:12
291
原创 C++基础的不能再基础的学习笔记——类(一)
类在C++中,我们用类来定义自己的数据类型。类的基本思想是数据抽象和封装,可以理解为将接口与实现分开,提供给用户可使用的类的接口,但类的具体实现对用户是透明的。class Person {private: string name; unsigned age = 0; bool sex = 0;public: Person() {name = ""
2018-01-24 16:53:04
281
原创 C++基础的不能再基础的学习笔记——迭代器(基础)
迭代器(iterator )迭代器是对对象的间接访问。并不是所有类型都可以使用迭代器,只有容器可以。因此迭代器的对象为:容器中的元素 or string对象中的字符。有效的迭代器是指 迭代器 指向某个元素 or 指向尾元素的下一位置,其他情况都是无效的。一、迭代器的使用有迭代器的类型 就有 可以返回迭代器的成员,最常见的如begin( )和end( ),begin
2018-01-17 19:52:27
309
原创 C++基础的不能再基础的学习笔记——标准库类型vector(基础)
vector类模板vector表示相同对象的集合,每个对象都有一个索引,又成之为容器。vector不是一种类型,而是一个类模板。顾名思义,模板本身不是一个类或函数,但根据提供类型的不同,可以生成不同类型的类或函数,这一过程叫做实例化。因此,在使用vector模板时,我们要给出对象的类型。#include using namespace std;vector a;
2018-01-17 17:50:25
251
原创 C++基础的不能再基础的学习笔记——标准库类型string
string类型string类型表示可变长的字符序列,使用string类型必须引入string头文件。#include using namespace std;一、定义和初始化string对象在字符串字面值中,编译器在每一个字符串字面值的结尾处都加上一个空字符’\0’,例如“fancy”,就变成了”fancy\0”。定义和初始化string对象有许多方式。st
2018-01-17 16:10:42
299
原创 C++基础的不能再基础的学习笔记——const限定符
const限定符const限定符修饰的变量,只有只读功能,而无法改变值。一、const的特点1.const对象一旦创建不可更改,因此必须初始化。const int bufSize = 512;bufSize = 512; //错误,试图改变值const int i = 12;const int j; //错误,没有赋初值2.默认状态下,const对象只在
2018-01-16 19:58:24
223
原创 C++基础的不能再基础的学习笔记——复合类型
复合类型复合类型是基于其他类型定义的类型。C++中最常用的复合类型是引用和指针。一、引用引用是给对象起的别名,它代表了对象,但它不是一个对象。一般在变量初始化时,初始值会被拷贝到新建的对象中,然而在定义引用时,程序将引用和它的初始值绑定在一起,一旦初始化完成,引用将和它的初始对象一直绑定在一起,无法令引用重新绑定到另一对象,因此引用必须初始化。引用的类型要与绑定的对象类型严
2018-01-16 13:29:27
224
原创 机器学习白到反光的小白——前言
学习笔记,如果有错误求指出,但是小白就不要看了容易误导泥萌(/ω\)一、什么是机器学习机器学习是实现人工智能的一种手段,我们为机器编写学习程序,使得机器可以自主学习。在这里,我们将机器看成一个人,所有所学的知识和做出的行为,都是先天学习和后天学习共同形成的。对于机器而言,先天学习是人类设定的大量规则,后天学习则是机器学习主要致力实现的部分。每一个机器起初都是一个小baby,在社会教
2018-01-15 17:40:37
367
空空如也
InnoDB 锁问题 next-key locking
2021-02-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人