11 2018 档案
摘要:一、索引:搜索引导,好比是图书的目录。 为什么使用索引? 索引是提升查询效率最有效的手段! 在数据库中插入数据会引发索引的重建 简单的说索引的就是用帮我们加快查询速度的。 但也不是索引越多速度越快的!!! 如果没有命中索引速度反而会降低。 索引的分类 1.聚集索引 就是主键索引 行中的完整记录存在聚
阅读全文
摘要:一、视图 视图是有一张表或多张表的查询结果构成的一张虚拟表。 可以帮我们节省sql的编写,视图的另一个作用是,可以不同的视图来展示开放不同数据的访问。 创建视图 加上OR REPLACE 时如果已经存在相同视图则替换原有视图 column_list指定哪些字段要出现在视图中 使用视图 视图是一张虚拟
阅读全文
摘要:一、外键 级联 外键:create table 表名(字段名 类型(长度),foreign key(外键的字段名称) references 对方表名(对方主键名)); 外键的第一种约束 先建主表 再建从表 外键的第二个约束 先插入主表 再插入从表 外键的第三个约束 删除记录时 先删除从表记录 再删主
阅读全文
摘要:一、详细的建表语句 create table 表名(字段名 数据类型[(长度) 约束条件]); []代表可选的 为什么需要给数据分类? 1.描述数据更加准确 2.节省内存空间 二、数据类型 1、整数类型 默认有符号的 设置为无符号 1.create table t2(age tinyint unsi
阅读全文
摘要:1.什么是数据库 存放数据的仓库 已学习的文件操作的缺陷 1.IO操作 效率问题 2.多用户竞争数据 3.网络访问 4.用户的验证 2.常见的数据库 关系型 数据之间存在某种关联关系 oracle 目前最好关系型数据库,体现在用户管理,分布式 商业用途收费 mysql 免费开源,功能支持没有orac
阅读全文
摘要:1.网络传输中的两个阶段 分别是 waitdata 和 copydata send copydata recv waitdata copydata 2.阻塞IO 无论是线程 进程 还是线程 进程池 统统都是阻塞IO 3.非阻塞IO 最直接体现 所有和读写相关的函数 都不会阻塞 意味着 在读写时 并不
阅读全文
摘要:一、同步 异步 阻塞 非阻塞 线程的三种状态: 1.就绪 2.运行 3.阻塞 阻塞 遇到了IO操作 代码卡主 无法执行下一行 CPU会切换到其他任务 非阻塞 与阻塞相反 代码正在执行(运行状态) 或处于就绪状态 阻塞和非阻塞描述的是运行的状态 同步 :提交任务必须等待任务完成,才能执行下一行 异步
阅读全文
摘要:1.全局解释器锁GIL:GIL Global Interpreter Lock 锁就是线程里面那个锁 锁是为了避免资源竞争造成数据的错乱 每个py程序中都必须有解释器参与 解释器其实就是一堆代码相当于多个线程要调用同一个解释器代码 共享以为竞争 竞争就要出事给解释器加互斥锁 python 中内存管理
阅读全文
摘要:一、守护进程 简单的说就是a守护b,如果b死了a也一起死了。 守护进程的代码Process(target=task).daemon = True必须在启动程序之前执行。 应用场景:安卓手机里有大量的守护进程。 二、互斥锁 互斥:两者不能同时存在。 通过互斥锁让2个进程相互排斥,a进程运行时,b进程不
阅读全文
摘要:1.TCP半连接池原理 什么情况下会进入半连接池 来不及处理accept 或者客户端单方面终止连接 2.UDP 通讯 写代码的区别 对比TCP 没有listen 没有accept 发送使用sendto 需要指定接收方的地址 recvfrom 缓冲区大小最大建议512 需要和发送方一样大 3.UDP聊
阅读全文
摘要:网络编程:其实就是在学socket socket是什么? 翻译过来称为套接字是对底层的 TCP IP UDP 等网络协议进行封装 使得上层的应用程序开发者,不用直接接触这对复杂,丑陋的协议 在程序员的言论,他就是一个封装好的模块! 要完成网络通讯,只需要使用系统提供的socket模块就行 TCP和U
阅读全文
摘要:异常处理:之所以学习异常处理是为了让程序更加稳定(健壮性)不容易崩溃 什么是异常? 异常是错误发生前的一种信号 如果没有人来处理这个信号 程序就会中断执行并抛出错误信息 异常分类: 1.语法检测异常:这种异常是最低级的异常,绝对不能犯。 2.运行时异常:这种异常只有在执行代码时才会被发现,我们要处理
阅读全文

浙公网安备 33010602011771号