- 博客(15)
- 收藏
- 关注
原创 python之ORM
""" 生成建表语句 在创建类的时候 """ import pymysql import logging host = "127.0.0.1" port = 3306 user = "root" password = "123321" database = "youku" auto_commit = True # 是否输出调试信息 debug = False ...
2019-03-26 19:59:14 127
原创 mysql索引
什么是索引 在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构; 也称之为key 索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。 为什么需要索引 思考:一个项目正常运行后,对数据库的操作中,哪些操作是最频繁的? 对数据库的写操作(增加 删除 修改)频繁吗? 对数据库的读操作(查询)频繁吗? 相比较下,对数据的读操作...
2019-03-21 18:59:49 72
原创 mysql
一.视图 什么是视图 视图是有一张表或多张表的查询结果构成的一张虚拟表 为什么使用视图 当我们在使用多表查询时 我们的sql语句可能会非常的复杂,如果每次都编写一遍sql'的话无疑是一件麻烦的事情,这时候就可以使用视图来避免多次编写sql的问题; 简答的说可以帮我们节省sql的编写, 视图的另一个作用是,可以不同的视图来展示开放不同数据的访问 例如,同一张工资表,老板可以查看全...
2019-03-19 14:17:09 88
原创 数据增删改查
1.数据增删改 2.单表查询 无条件查询 where 条件 group by having order by limit 3.正则表达式 4.多表查询 笛卡尔积 内连接 外链接 5.子查询 # 一.数据的增删改 为什么不说查 因为查询语句 有很多细节 所以先从简单的说起 添加数据: 1.insert into table_name[column,[colu...
2019-03-18 11:57:45 347
原创 分表
分表: 为什么要分表? 一个表中 要存储个人信息又要存储部门信息 会导致大量的数据冗余 所有数据存放在同一个表中 将导致以下几个问题 1.浪费空间 不致命 2.结构混乱 3.修改数据时 如果有一百个员工 那就要该一百次 扩展性极差 通过分表来解决 分表又造成新的问题 如何再将数据对应起来? 为什么需要对应起来是因为两张表的数据具备这某种关系 到底是什么关系呢...
2019-03-15 19:07:41 347
原创 mysql 数据库存储引擎数据类型
引擎 前提: 引擎是建表是规定, 提供给表使用的, 不是数据库 mysql> show engines; # 展示所有引擎 # 重点: # innodb(默认): 支持事务, 行级锁, 外键 # myisam: 查询效率要优于innodb, 当不需要支持事务, 行级锁, 外键, 可以通过设置myisam来优化数据库 mysql> use db1; mysql&g...
2019-03-14 14:58:17 83
原创 mysql数据库基础
一.认识数据库 1.什么是数据库? 数据库就是存储数据的仓库 存储数据的方式1 """ 第一天就学习了一种存储数据的方式 就是变量 然而变量的存储介质是内存,内存中的数据在断电后就消失了,无法永久保存 很明显这是不行的 ,比如用户刚刚注册成功的用户名密码必须要永久。 """ 存储数据的方式2 """ 使用文件来存储数据就可以实现永久存储,但是文件是存储于硬盘上的,首先要考虑的就是效...
2019-03-13 14:50:41 111
原创 IO模型
IO模型 IO指的是输入输出,输入输出都是一个耗时的操作,程序中一旦遇到了输入输出就会被阻塞,导致程序效率降低,IO模型也就是输入输出模型,是为了提高IO效率而出现。 IO本质上也分为不同类型,其中最典型的就是网络IO,由于网络速度比运算速度慢很多,所以大量的时间都是在等待网络IO,这也是我们要关注的重点! copyData与waitData 网络通讯时,应用程序的数据是交由操作系统来进行...
2019-03-12 14:57:20 177
原创 协程
引子 上一节中我们知道GIL锁将导致CPython无法利用多核CPU的优势,只能使用单核并发的执行。很明显效率不高,那有什么办法能够提高效率呢? 效率要高只有一个方法就是让这个当前线程尽可能多的占用CPU时间,如何做到? 任务类型可以分为两种 IO密集型 和 计算密集型 对于计算密集型任务而言 ,无需任何操作就能一直占用CPU直到超时为止,没有任何办法能够提高计算密集任务的效率,除非把GI...
2019-03-11 18:09:01 79
原创 GIL,同步异步,阻塞非阻塞
本章内容: 1.什么是GIL 2.GIL带来的问题 3.为什么需要GIL 4.关于GIL的性能讨论 5.自定义的线程互斥锁与GIL的区别 6.线程池与进程池 7.同步异步,阻塞非阻塞 一.什么是GIL 官方解释: ''' In CPython, the global interpreter lock, or GIL, is a mutex that prevents mu...
2019-03-08 12:17:28 196
原创 多线程
多线程 什么是线程: 线程指的是一条流水线的工作过程的总称 线程是CPU的基本执行单位 对比进程而言,进程仅仅是一个资源单位其包含了程序运行所需的资源,就像一个车间 而单有资源是无法生产出产品的,必须有具体的生产产品的逻辑代码 线程就相当于车间中的一条流水线,而你的代码就是流水线上的一道道工序 特点: 1.每个进程都会有一个默认的线程 2.每个进程可以存在多个线程 3.同一进程...
2019-03-07 12:20:11 90
原创 进程之joinableQueue
joinableQueue 可翻译:为可join的队列 该队列相比普通的Queue的区别在于该对列额外增加的了join函数 join函数的作用: 该函数为阻塞函数,会阻塞直到等待队列中所有数据都被处理完毕。 q = JoinableQueue() q.put(1) q.get() q.join() #阻塞 等待队列中所有数据都被处理完毕 print("over") 执行以上函...
2019-03-07 12:18:42 2152
原创 multiprocessing模块
一 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程。Python提供了multiprocessing。 multiprocessing模块用来开启子进程,并在子进程中执行我们定制的任务(比如函数),该模块与多线程模块threading的...
2019-03-07 08:37:47 627
原创 并发编程
进程篇 本章目录: 什么是进程 多进程的实现原理 多道技术 进程与程序 进程PID与PPID 并发与并行,阻塞与非阻塞 python实现多进程 孤儿进程与僵尸进程 什么是并发编程 并发指的是多个任务同时被执行,并发编程指的是编写支持多任务并发的应用程序在。 之前的TCP通讯中,服务器在建立连接后需要一个循环来与客户端循环的收发数据,但服务器并不知道客户端什么时候会发来数据,导...
2019-03-05 09:11:12 180
原创 UDP协议
1.UDP协议 UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection 参考模型中一种无连接的传输层协议,提供简单不可靠信息传送服务 是一种无连接的传输层协议,它主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成。且不对传送数据包进行可靠性保证,适合于一次传输少量数据。...
2019-03-04 14:39:31 244
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人