07 2020 档案

摘要:索引 b+树 ​ 平衡树(btree-balance tree) 能够让查找某一个值经历的查找速度尽量平衡 ​ 分支节点不存储数据 -- 让树的高度尽量矮,让查找一个数据的效率尽量的稳定 ​ 在所有叶子结点之间加入了双向的地址链接 -- 查找范围非常快 两种索引的差别 聚集索引 聚簇索引 Innod 阅读全文
posted @ 2020-07-31 11:47 爱浪的跳蚤 阅读(84) 评论(0) 推荐(0) 编辑
摘要:多表查询 准备 建表与数据准备 #建表 create table department( id int, name varchar(20) ); create table employee( id int primary key auto_increment, name varchar(20), s 阅读全文
posted @ 2020-07-30 13:13 爱浪的跳蚤 阅读(133) 评论(0) 推荐(0) 编辑
摘要:单表查询 单表查询的语法及关键字执行的优先级 单表查询语法 SELECT DISTINCT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 关键字执行的优先级 from where grou 阅读全文
posted @ 2020-07-29 19:03 爱浪的跳蚤 阅读(141) 评论(0) 推荐(0) 编辑
摘要:数据的增删改 概览 MySQL数据操作: DML 在MySQL管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括 使用INSERT实现数据的插入 UPDATE实现数据的更新 使用DELETE实现数据的删除 使用SELECT查询数据以及。 插入数据insert 1. 插入完整数据(顺序 阅读全文
posted @ 2020-07-29 11:36 爱浪的跳蚤 阅读(116) 评论(0) 推荐(0) 编辑
摘要:多表结构的创建与分析 如何找出两张表之间的关系 分析步骤: #1、先站在左表的角度去找 是否左表的多条记录可以对应右表的一条记录,如果是,则证明左表的一个字段foreign key 右表一个字段(通常是id) #2、再站在右表的角度去找 是否右表的多条记录可以对应左表的一条记录,如果是,则证明右表的 阅读全文
posted @ 2020-07-28 15:28 爱浪的跳蚤 阅读(136) 评论(0) 推荐(0) 编辑
摘要:修改表结构 语法: 1. 修改表名 ALTER TABLE 表名 RENAME 新表名; 2. 增加字段 ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束条件…], ADD 字段名 数据类型 [完整性约束条件…]; 3. 删除字段 ALTER TABLE 表名 DROP 字段名; 阅读全文
posted @ 2020-07-28 12:43 爱浪的跳蚤 阅读(288) 评论(0) 推荐(0) 编辑
摘要:完整性约束 概览 为了防止不符合规范的数据进入数据库,在用户对数据进行插入、修改、删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确、有效、相容。 约束条件与数据类型的宽度一样,都是可选参数,主要分为以下几种: # NOT NU 阅读全文
posted @ 2020-07-28 12:12 爱浪的跳蚤 阅读(164) 评论(0) 推荐(0) 编辑
摘要:基础操作和数据类型 写入数据的三种方式: insert into 表 values (值1,值2,值3); 这张表有多少的字段,就需要按照字段的顺序写入多少个值 insert into 表 values (值1,值2,值3),(值1,值2,值3),(值1,值2,值3); 一次性写入多条数据 inse 阅读全文
posted @ 2020-07-27 23:02 爱浪的跳蚤 阅读(151) 评论(0) 推荐(0) 编辑
摘要:存储引擎 存储引擎 -- 存储数据的方式 一张表 数据 表的结构 索引(查询的时候使用的一个目录结构) Innodb存储引擎 mysql5.6之后的默认的存储引擎 数据和索引存储在一起 2个文件 数据索引\表结构 数据持久化 支持事务 : 为了保证数据的完整性,将多个操作变成原子性操作 : 保持数据 阅读全文
posted @ 2020-07-27 15:21 爱浪的跳蚤 阅读(85) 评论(0) 推荐(0) 编辑
摘要:初识sql语句 # 默认用户登陆之后并没有实际操作的权限 # 需要使用管理员root用户登陆 $ mysql -uroot -p # mysql5.6默认是没有密码的 #遇到password直接按回车键 mysql> set password = password('root'); # 给当前数据库 阅读全文
posted @ 2020-07-27 15:17 爱浪的跳蚤 阅读(76) 评论(0) 推荐(0) 编辑
摘要:mysql的安装、启动和基础配置 — windows版本 第一步:打开网址,https://www.mysql.com,点击downloads之后跳转到https://www.mysql.com/downloads 选择下载5.6版本 my.ini配置文件 [mysql] # 设置mysql客户端默 阅读全文
posted @ 2020-07-27 15:15 爱浪的跳蚤 阅读(89) 评论(0) 推荐(0) 编辑
摘要:协程 协程: 是操作系统不可见的 协程本质就是一条线程 多个任务在一条线程上来回切换 利用协程这个概念实现的内容 : 来规避IO操作,就达到了我们将一条线程中的io操作降到最低的目的 切换 并 规避io 的两个模块: gevent = 利用了 greenlet 底层模块完成的切换 + 自动规避io的 阅读全文
posted @ 2020-07-27 10:04 爱浪的跳蚤 阅读(78) 评论(0) 推荐(0) 编辑
摘要:池 什么是池? 要在程序开始的时候,还没提交任务先创建几个线程或者进程 放在一个池子里,这就是池 为什么要用池? 如果先开好进程/线程,那么有任务之后就可以直接使用这个池中的数据了 并且开好的线程或者进程会一直存在在池中,可以被多个任务反复利用 这样极大的减少了开启\关闭\调度线程/进程的时间开销 阅读全文
posted @ 2020-07-27 10:03 爱浪的跳蚤 阅读(142) 评论(0) 推荐(0) 编辑
摘要:队列 Queue fifo 先进先出的队列 import queue # 线程之间数据安全的容器队列 from queue import Empty # 不是内置的错误类型,而是queue模块中的错误 # q = queue.Queue(4) # fifo 先进先出的队列 # # q.get() # 阅读全文
posted @ 2020-07-26 11:59 爱浪的跳蚤 阅读(69) 评论(0) 推荐(0) 编辑
摘要:互斥锁递归锁及死锁现象 from threading import Lock,RLock # Lock 互斥锁 效率高 # RLock 递归(recursion)锁 效率相对低 l = Lock() l.acquire() print('希望被锁住的代码') l.release() rl = RLo 阅读全文
posted @ 2020-07-26 11:52 爱浪的跳蚤 阅读(220) 评论(0) 推荐(0) 编辑
摘要:线程数据不安全现象 from threading import Thread n = 0 def add(): for i in range(500000): global n n += 1 def sub(): for i in range(500000): global n n -= 1 t_l 阅读全文
posted @ 2020-07-26 11:37 爱浪的跳蚤 阅读(87) 评论(0) 推荐(0) 编辑
摘要:守护线程 import time from threading import Thread def son(): while True: print('in son') time.sleep(1) def son2(): for i in range(3): print('in son2 ****' 阅读全文
posted @ 2020-07-26 11:05 爱浪的跳蚤 阅读(64) 评论(0) 推荐(0) 编辑
摘要:线程 Thread 线程 :能被操作系统调度(给CPU执行)的最小单位 数据共享,操作系统调度的最小单位,可以利用多核,操作系统调度,数据不安全,开启关闭切换时间开销小 在CPython中的多线程 - 节省io操作的时间 gc 垃圾回收机制 线程 引用计数 +分代回收 全局解释器锁的出现主要是为了完 阅读全文
posted @ 2020-07-26 10:53 爱浪的跳蚤 阅读(66) 评论(0) 推荐(0) 编辑
摘要:进程之间通信(IPC) Inter Process communication 基于文件 :同一台机器上的多个进程之间通信 Queue 队列 基于socket的文件级别的通信来完成数据传递的 基于网络 :同一台机器或者多台机器上的多进程间通信 第三方工具(消息中间件) memcache redis 阅读全文
posted @ 2020-07-23 17:04 爱浪的跳蚤 阅读(178) 评论(0) 推荐(0) 编辑
摘要:锁-lock import time from multiprocessing import Lock,Process def func(i,lock): lock.acquire() # 拿钥匙 print('被锁起来的代码%s'%i) lock.release() # 还钥匙 time.slee 阅读全文
posted @ 2020-07-23 16:50 爱浪的跳蚤 阅读(134) 评论(0) 推荐(0) 编辑
摘要:守护进程 p.daemon = True 主进程会等待所有的子进程结束,是为了回收子进程的资源 守护进程会等待主进程的代码执行结束之后再结束,而不是等待整个主进程结束. 主进程的代码什么时候结束,守护进程就什么时候结束,和其他子进程的执行进度无关 import time from multiproc 阅读全文
posted @ 2020-07-23 12:45 爱浪的跳蚤 阅读(110) 评论(0) 推荐(0) 编辑
摘要:使用多进程并发的socketserver server端: import socket from multiprocessing import Process def talk(conn): while True: msg = conn.recv(1024).decode('utf-8') ret 阅读全文
posted @ 2020-07-19 15:25 爱浪的跳蚤 阅读(120) 评论(0) 推荐(0) 编辑
摘要:multiprocessing模块-Process # multiple 多元化的 # processing 进程 # multiprocessing 多元的处理进程的模块 仔细说来,multiprocess不是一个模块而是python中一个操作、管理进程的包。 之所以叫multi是取自multip 阅读全文
posted @ 2020-07-19 15:19 爱浪的跳蚤 阅读(158) 评论(0) 推荐(0) 编辑
摘要:进程的三状态及进程调度算法算法 在了解其他概念之前,我们首先要了解进程的几个状态。在程序运行的过程中,由于被操作系统的调度算法控制,程序会进入几个状态:就绪,运行和阻塞。 (1)就绪(Ready)状态 当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态 阅读全文
posted @ 2020-07-19 14:12 爱浪的跳蚤 阅读(353) 评论(0) 推荐(0) 编辑
摘要:并发编程基本概念 I/O操作 相对内存来说 输入Input输出Output 输入是怎么输入 :键盘\input\read\recv 输出是怎么输出 :显示器 打印机 播放音乐\print\write\send 文件操作 :read write 网络操作 😒end recv recvfrom 函数 阅读全文
posted @ 2020-07-17 19:07 爱浪的跳蚤 阅读(100) 评论(0) 推荐(0) 编辑
摘要:socketserver并发服务 #重要的模板 import socketserver class Myserver(socketserver.BaseRequestHandler): #自己定义一个class类 def handle(self): #方法名必须为handle() conn = se 阅读全文
posted @ 2020-07-17 17:35 爱浪的跳蚤 阅读(142) 评论(0) 推荐(0) 编辑
摘要:验证客户端的合法性 # 生成一个随机字符串 import os ret = os.urandom(8) print(ret) print(len(ret)) #b'\x0e\xb0\x87<IK\xe7\x0f' #8 # import hashlib # sha = hashlib.sha1(密钥 阅读全文
posted @ 2020-07-17 17:15 爱浪的跳蚤 阅读(84) 评论(0) 推荐(0) 编辑
摘要:基于TCP协议传输文件 ''' 版本一: 此版本一次写入整个文件大小, 只能传输小文件,大文件可能会传不全 ''' #server端 import socket import json sk = socket.socket() sk.bind(('127.0.0.1',9001)) sk.liste 阅读全文
posted @ 2020-07-17 16:01 爱浪的跳蚤 阅读(404) 评论(0) 推荐(0) 编辑
摘要:最简单的网络通讯 server端: import socket sk = socket.socket() # 创建一个server端的对象 sk.bind(('127.0.0.1',9001)) # 给server端绑定一个地址 sk.listen() # 开始监听(可以接收)客户端给我的连接了 c 阅读全文
posted @ 2020-07-09 18:47 爱浪的跳蚤 阅读(158) 评论(0) 推荐(0) 编辑
摘要:不变的 : mac地址 能够唯一标识你这台机器的 变化的 : ip地址 能够更好的更方便的找到你的机器 局域网 : ​ 网段 交换机 不能理解ip地址,只能理解mac地址 局域网和局域网之间通信了 : ​ 网关 路由器 可以理解ip地址 ip地址 ​ ipv4 : 四位点分十进制 ​ 192.168 阅读全文
posted @ 2020-07-08 21:58 爱浪的跳蚤 阅读(141) 评论(0) 推荐(0) 编辑
摘要:绝对导入模板 glance/ ├── __init__.py from glance import api from glance import cmd from glance import db ├── api │ ├── __init__.py from glance.api import po 阅读全文
posted @ 2020-07-07 18:34 爱浪的跳蚤 阅读(126) 评论(0) 推荐(0) 编辑
摘要:一些内置的魔术方法 _call_ : 对象() 调用这个类中的__call__方法 class A: def __call__(self, *args, **kwargs): print('_________') obj = A() print(callable(obj)) obj() A()() 阅读全文
posted @ 2020-07-05 15:33 爱浪的跳蚤 阅读(191) 评论(0) 推荐(0) 编辑
摘要:两个装饰函数 classmethod 被装饰的方法会成为一个静态方法 class Goods: __discount = 0.8 def __init__(self): self.__price = 5 self.price = self.__price * self.__discount @cla 阅读全文
posted @ 2020-07-05 13:49 爱浪的跳蚤 阅读(90) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示