摘要:
1. 索引 索引优化是对查询性能优化最有效的手段。索引能够轻易将查询性能提高好几个数量级。 索引的目的在于提高查询效率。 B+树结构。 创建索引结构时,要使用区分度较高的字段那一列; 索引字段占用空间要尽量的小。 在建表时,添加索引;不要在添加数据后,再添加索引,会将所有数据都会扫描,很慢。 聚集索 阅读全文
摘要:
1. 多表查询 1.1 交叉连接--笛卡儿积 将两表所有的数据一一对应,生成一张表。 耗内存、资源。 #表1是主表,表2是从表, select * from 表1,表2; # 连表,全关联,将两张表连在一起(可能有重复字段) select * from 表1,表2 where 表1.id=表2.pi 阅读全文
摘要:
1. 修改、删除被关联字段 主表(父表)、从表(子表) show create table 从表; # 查看外键名称 create table t1(id int, pid int constraint 名字 foreign key(关联字段) reference 主表(被关联字段) ; # 创建外 阅读全文
摘要:
数据类型与完整性约束 1. 创建表 # 完整创建表语法 create table 表名( 字段名1 类型[(宽度) 约束条件], 字段名2 类型[(宽度) 约束条件], 字段名3 类型[(宽度) 约束条件] ); # 注意: 1. 在同一张表中,字段名是不能相同 2. 宽度和约束条件可选、非必须,宽 阅读全文
摘要:
1. 数据库相关概念 数据库管理系统 :Database Management System(DBMS):是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。 记录:每一组数据组成一条记录 表:文件,用来存储多条记录 库:文件夹,用来组织文件/表(存储在data文件夹下) 数据库分类: 关 阅读全文
摘要:
MySQL数据库Windows环境安装 MySQL 下载地址:https://dev.mysql.com/downloads 进入官网,点击DOWNLOADS 我们这里选择5.6.45版本下载,下载zip。 点击download进入: 1.下载完成后,解压mysql压缩包,自定义目录(不能有中文和特 阅读全文
摘要:
socketserver模块 socketserver模块实现一个服务端与多个客户端通信。是在socket的基础上进行了一层封装,底层还是调用的socket。 socketserver干了两件事: 1、一个是循环建立链接的部分,每个客户链接都可以连接成功 2、一个通讯循环的部分,就是每个客户端链接成 阅读全文
摘要:
1. 线程队列 1.1 先进先出(FIFO) import queue q = queue.Queue(3) q.put('a') q.put('b') q.put('c') print(q.qsize()) # 队列大小 print(q.get()) print(q.get()) print(q. 阅读全文
摘要:
1. 阻塞与非阻塞 执行的角度: 阻塞:阻塞调用是指调用结果返回之前,当前线程会被挂起(如遇到io操作)。函数只有在得到结果之后才会将阻塞的线程激活。 非阻塞:程序没有遇到IO阻塞,或者程序遇到IO,通过某种方式,让CPU强行运行程序。 2. 同步与异步 发布的角度: 同步调用:在发出一 阅读全文
摘要:
1. 死锁与递归锁 死锁:两个或者两个以上的进程或者线程在执行过程中,因争夺资源而造成的一种等待现象,称为死锁现象。 递归锁可以解决死锁现象。 递归锁有一个计数的功能,原数字为0,锁一次计数+1,释放一次,计数-1;只要数字不为0,其他线程就不能枪锁。 from threading import R 阅读全文