摘要:
一、一对多 所有的信息都记录在一张表中所带来的问题,类似于我们将所有的代码都写在用一个py文件内 (1)表的结构不清晰 (2)浪费硬盘空间 (3)表的扩展性极差(无法忽略的缺点) 确立表与表之间的关系,一定要换位思考 以员工表和部门表为例 先站在员工表看能否有多个员工对应一个部门 翻译: 一个部门能 阅读全文
摘要:
一、存储引擎 不同的数据应该有不同的处理机制 mysql存储引擎: innodb:默认的存储引擎,查询速度较myisam慢,但是更安全 myisam:mysql老版本用的存储引擎 memory:内存引擎(数据全部存在内存中) blackhole:无论存什么都立马消失(黑洞) 查看所有引擎: show 阅读全文
摘要:
一、数据库概念 MySQL:用于管理文件的一个软件(两个程序) 服务端软件 socket服务器 本地文件操作 解析指令 客户端软件 socket客户端 发送指令 解析指令 mysql只是一种能够帮助我们管理数据的软件,还有其他类似的软件也是通过发送指令来帮你管理数据库 其他类似软件: 关系型数据库: 阅读全文
摘要:
一、进程池线程池介绍 1.开线程和开进程都是要消耗资源的,只不过线程消耗的资源较少一点 2.概念:硬件有极限,为了减轻硬件压力,所以有了池的概念 3.什么是池? 在保证计算机硬件安全的情况下最大限度的利用计算机 池其实是降低了程序的运行效率,但是保证了计算机硬件的安全 (硬件的发展跟不上软件的速度) 阅读全文
摘要:
一、GIL全局解释器锁 1.GIL 全局解释器锁 只在Cpython解释器中 GIL本质也是一把互斥锁:将并发变成串行牺牲效率保证数据的安全 用来阻止同一个进程下的多个线程的同时执行(同一个进程内多个线程无法实现并行但是可以实现并发) GIL的存在是因为Cpython解释器的内存管理不是线程安全的 阅读全文
摘要:
一、进程间通信 进程与进程之间是数据隔离的 管道/队列(管道+锁) 队列:先进先出 堆栈:先进后出 q.put() 放入值 q.get() 获取队列里面的值(同一时刻只能有一个任务来队列中获取数据) 两者在存放值和取值的时候都会出现阻塞的情况(队列满了,队列空了) q = Queue(5) 括号内可 阅读全文
摘要:
一、操作系统发展史 1.穿孔卡片 2.磁带 3.批处理 本质:都是想提高CPU的利用率 二、多道技术 1.空间上的复用 多个程序公用一台硬件设备 2.时间上的复用(洗衣,做饭,烧水) cpu在多个程序之间来回切换着执行程序 cpu什么时候会切换: (1)程序占用cpu时间过长,操作系统会剥夺该程序的 阅读全文
摘要:
一、文件的上传与下载 服务端 1.先接受4个长度的报头 2.解析报头获取字典长度 3.接收字典数据,从字典中获取真实数据的详细信息 4.接收真实数据 客户端 (1)制作字典的报头(固定4个长度) (2)发送报头 (3)发送字典 (4)最后再发真实数据 二、异常处理 1.什么是异常 程序在运行过程中出 阅读全文
摘要:
一、Socket 1.UDP协议 数据报协议 无需建立双向通道,数据传输是不安全 将内存中的数据直接发送出去,不会做保留 早期的qq ps:TCP协议类似于打电话,UDP协议类似于发短信 2.TCP特点: 会将数据量比较小的并且时间间隔比较短的数据一次性打包发送给对方 3.OSI协议补充 4.解决端 阅读全文