摘要:
MySQL目录 1 初识数据库 "1 1 数据库管理软件的由来" "1 2 数据库概述" "1 3 mysql的安装和基本管理" "1 4 初识sql语句" 2 库操作 "2 1 库的增删改查" 3 表操作 "3 1 存储引擎的介绍" "3 2 表的增删改查" "3 3 1 数值类型" "3 3 2 阅读全文
posted @ 2019-10-13 10:32
不要找借口
阅读(152)
评论(0)
推荐(0)
摘要:
七 正确使用索引 七 正确使用索引 一 索引未命中 并不是说我们创建了索引就一定会加快查询速度,若想利用索引达到预想的提高查询速度的效果,我们在添加索引时,必须遵循以下问题 1 范围问题,或者说条件不明确,条件中出现这些符号或关键字:>、>=、<、<=、!= 、between...and...、li 阅读全文
posted @ 2019-10-13 10:24
不要找借口
阅读(192)
评论(0)
推荐(0)
摘要:
一 介绍 一 介绍 为何要有索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重。说起加速查询,就不得不提到索引了。 什么是索引? 索引在MySQL中 阅读全文
posted @ 2019-10-13 10:23
不要找借口
阅读(200)
评论(0)
推荐(0)
摘要:
一 流程控制 二 循环语句 阅读全文
posted @ 2019-10-13 10:15
不要找借口
阅读(108)
评论(0)
推荐(0)
摘要:
一 函数 MySQL中提供了许多内置函数,例如: 一、数学函数 ROUND(x,y) 返回参数x的四舍五入的有y位小数的值 RAND() 返回0到1内的随机值,可以通过提供一个参数(种子)使RAND()随机数生成器生成一个指定的值。 二、聚合函数(常用于GROUP BY从句的SELECT查询中) A 阅读全文
posted @ 2019-10-13 10:14
不要找借口
阅读(193)
评论(0)
推荐(0)
摘要:
一 存储过程 一 存储过程介绍 存储过程包含了一系列可执行的sql语句,存储过程存放于MySQL中,通过调用它的名字可以执行其内部的一堆sql 使用存储过程的优点: 使用存储过程的缺点: 补充:程序与数据库结合使用的三种方式 二 创建简单存储过程(无参) 三 创建存储过程(有参) 四 执行存储过程 阅读全文
posted @ 2019-10-13 10:14
不要找借口
阅读(202)
评论(0)
推荐(0)
摘要:
一 事物 事务用于将某些操作的多个SQL作为原子性操作,一旦有某一个出现错误,即可回滚到原来的状态,从而保证数据库数据完整性。 阅读全文
posted @ 2019-10-13 10:13
不要找借口
阅读(75)
评论(0)
推荐(0)
摘要:
一 触发器 使用触发器可以定制用户对表进行【增、删、改】操作时前后的行为,注意:没有查询 一 创建触发器 特别的:NEW表示即将插入的数据行,OLD表示即将删除的数据行。 二 使用触发器 触发器无法由用户直接调用,而知由于对表的【增/删/改】操作被动引发的。 三 删除触发器 阅读全文
posted @ 2019-10-13 10:13
不要找借口
阅读(134)
评论(0)
推荐(0)
摘要:
一 视图 视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查 阅读全文
posted @ 2019-10-13 10:12
不要找借口
阅读(197)
评论(0)
推荐(0)
摘要:
一 介绍 之前我们都是通过MySQL自带的命令行客户端工具mysql来操作数据库,那如何在python程序中操作数据库呢?这就用到了pymysql模块,该模块本质就是一个套接字客户端软件,使用前需要事先安装 二 链接、执行sql、关闭(游标) 三 execute()之sql注入 注意:符号 会注释掉 阅读全文
posted @ 2019-10-13 10:11
不要找借口
阅读(198)
评论(0)
推荐(0)
摘要:
一 Navicat 官网下载: 网盘下载: 需要掌握的基本操作 阅读全文
posted @ 2019-10-13 10:04
不要找借口
阅读(182)
评论(0)
推荐(0)
摘要:
一 介绍 本节主题 多表连接查询 复合条件连接查询 子查询 准备表 二 多表连接查询 1 交叉连接:不适用任何匹配条件。生成笛卡尔积 2 内连接:只连接匹配的行 3 外链接之左连接:优先显示左表全部记录 4 外链接之右连接:优先显示右表全部记录 5 全外连接:显示左右两个表全部记录 三 符合条件连接 阅读全文
posted @ 2019-10-13 10:03
不要找借口
阅读(205)
评论(0)
推荐(0)
摘要:
一 单表查询的语法 二 关键字的执行优先级(重点) 1.找到表:from 2.拿着where指定的约束条件,去文件/表中取出一条条记录 3.将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组 4.将分组的结果进行having过滤 5.执行select 6.去重 7. 阅读全文
posted @ 2019-10-13 10:02
不要找借口
阅读(228)
评论(0)
推荐(0)
摘要:
一 介绍 MySQL数据操作: DML ======================================================== 在MySQL管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括 1. 使用INSERT实现数据的插入 2. UPDATE实现数据的 阅读全文
posted @ 2019-10-13 10:01
不要找借口
阅读(139)
评论(0)
推荐(0)
摘要:
字符类型 官网解释如下 测试前了解两个函数 1. char填充空格来满足固定长度,但是在查询时却会很不要脸地删除尾部的空格(装作自己好像没有浪费过空间一样),然后修改sql_mode让其现出原形 2. 虽然 CHAR 和 VARCHAR 的存储方式不太相同,但是对于两个字符串的比较,都只比 较其值, 阅读全文
posted @ 2019-10-13 09:57
不要找借口
阅读(168)
评论(0)
推荐(0)
摘要:
枚举类型与集合类型 字段的值只能在给定范围中选择,如单选框,多选框 enum 单选 只能在给定的范围内选一个值,如性别 sex 男male/女female set 多选 在给定的范围内可以选择一个或一个以上的值(爱好1,爱好2,爱好3...) 阅读全文
posted @ 2019-10-13 09:57
不要找借口
阅读(157)
评论(0)
推荐(0)
摘要:
日期类型 DATE TIME DATETIME TIMESTAMP YEAR 作用:存储用户注册时间,文章发布时间,员工入职时间,出生时间,过期时间等 验证 datetime与timestamp的区别 阅读全文
posted @ 2019-10-13 09:55
不要找借口
阅读(169)
评论(0)
推荐(0)
摘要:
数值类型 1、整数类型 整数类型:TINYINT SMALLINT MEDIUMINT INT BIGINT 作用:存储年龄,等级,id,各种号码等 验证 注意:为该类型指定宽度时,仅仅只是指定查询结果的显示宽度,与存储范围无关,存储范围如下 其实我们完全没必要为整数类型指定显示宽度,使用默认的就可 阅读全文
posted @ 2019-10-13 09:54
不要找借口
阅读(219)
评论(0)
推荐(0)
摘要:
一、表介绍 表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段 id,name,qq,age称为字段,其余的,一行内容称为一条记录 二、创建表 语法 示范 往表中插入数据 注意注意注意:表中的最后一个字段不要加逗号 三、查看表结构 四、修改表结构 阅读全文
posted @ 2019-10-13 09:52
不要找借口
阅读(251)
评论(0)
推荐(0)
摘要:
一 什么是存储引擎 mysql中建立的库=== 文件夹 库中建立的表=== 文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制:比如处理文本用txt类型,处理表格用excel,处理图片用png等 数据库中的表也应该有不同的类型,表的类型不同,会对应mysql不同的 阅读全文
posted @ 2019-10-13 09:51
不要找借口
阅读(214)
评论(0)
推荐(0)
摘要:
一 系统数据库 information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、字符信息等 performance_schema: MySQL 5.5开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件 阅读全文
posted @ 2019-10-13 09:48
不要找借口
阅读(121)
评论(0)
推荐(0)
摘要:
初识sql语句 有了mysql这个数据库软件,就可以将程序员从对数据的管理中解脱出来,专注于对程序逻辑的编写 mysql服务端软件即mysqld帮我们管理好文件夹以及文件,前提是作为使用者的我们,需要下载mysql的客户端,或者其他模块来连接到mysqld,然后使用mysql软件规定的语法格式去提交 阅读全文
posted @ 2019-10-13 09:47
不要找借口
阅读(118)
评论(0)
推荐(0)
摘要:
一、MySQL介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关 阅读全文
posted @ 2019-10-13 09:46
不要找借口
阅读(243)
评论(0)
推荐(0)
摘要:
数据库概述 1 什么是数据(Data) 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字、图片,图像、声音、语言等,数据由多种表现形式,它们都可以经过数字化后存入计算机 在计算机中描述一个事物,就需要抽取这一事物的典型特征,组成一条记录,就相当于文件里的一行内容,如: 单纯的一条 阅读全文
posted @ 2019-10-13 09:45
不要找借口
阅读(227)
评论(0)
推荐(0)
摘要:
数据库管理软件的由来 基于我们之前所学,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上。 如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件都运行在一台机器上,那么用文件存取数据,并没有问题。 很不幸,这些假设都是你自己意淫出来的,上述假设存在 阅读全文
posted @ 2019-10-13 09:44
不要找借口
阅读(126)
评论(0)
推荐(0)
摘要:
并发编程目录 1 并发编程之进程 "1 1 进程理论" "1 2 开启进程的两种方式" "1 3 join方法" "1 4 守护进程" "1 5 互斥锁" "1 6 队列" "1 7 生产者消费者模型" 2 并发编程之线程 "2 1 线程理论" "2 2 开启线程的两种方式" "2 3 多线程和多进 阅读全文
posted @ 2019-10-13 09:35
不要找借口
阅读(156)
评论(0)
推荐(0)
摘要:
IO模型比较分析 到目前为止,已经将四个IO Model都介绍完了。现在回过头来回答最初的那几个问题:blocking和non blocking的区别在哪,synchronous IO和asynchronous IO的区别在哪。 先回答最简单的这个:blocking vs non blocking。 阅读全文
posted @ 2019-10-13 09:20
不要找借口
阅读(276)
评论(0)
推荐(0)
摘要:
一 了解select,poll,epoll 二 selectors模块 这三种IO多路复用模型在不同的平台有着不同的支持,而epoll在windows下就不支持,好在我们有selectors模块,帮我们默认选择当前平台下最合适的 阅读全文
posted @ 2019-10-13 09:20
不要找借口
阅读(125)
评论(0)
推荐(0)
摘要:
异步IO(Asynchronous I/O) Linux下的asynchronous IO其实用得不多,从内核2.6版本才开始引入。先看一下它的流程: 用户进程发起read操作之后,立刻就可以开始去做其它的事。而另一方面,从kernel的角度,当它受到一个asynchronous read之后,首先 阅读全文
posted @ 2019-10-13 09:18
不要找借口
阅读(142)
评论(0)
推荐(0)
摘要:
多路复用IO(IO multiplexing) IO multiplexing这个词可能有点陌生,但是如果我说select/epoll,大概就都能明白了。有些地方也称这种IO方式为 事件驱动IO (event driven IO)。我们都知道,select/epoll的好处就在于单个process就 阅读全文
posted @ 2019-10-13 09:17
不要找借口
阅读(171)
评论(0)
推荐(0)
摘要:
非阻塞IO(non blocking IO) Linux下,可以通过设置socket使其变为non blocking。当对一个non blocking socket执行读操作时,流程是这个样子: 从图中可以看出,当用户进程发出read操作时,如果kernel中的数据还没有准备好,那么它并不会bloc 阅读全文
posted @ 2019-10-13 09:16
不要找借口
阅读(159)
评论(0)
推荐(0)
摘要:
阻塞IO(blocking IO) 在linux中,默认情况下所有的socket都是blocking,一个典型的读操作流程大概是这样: 当用户进程调用了recvfrom这个系统调用,kernel就开始了IO的第一个阶段:准备数据。对于network io来说,很多时候数据在一开始还没有到达(比如,还 阅读全文
posted @ 2019-10-13 09:14
不要找借口
阅读(151)
评论(0)
推荐(0)
摘要:
IO模型介绍 同步\异步and阻塞\非阻塞(重点) 同步: 异步: 阻塞: 非阻塞: 小结: 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案 阅读全文
posted @ 2019-10-13 09:12
不要找借口
阅读(196)
评论(0)
推荐(0)
摘要:
一 gevent模块 Gevent 是一个第三方库,可以轻松通过gevent实现并发同步或异步编程,在gevent中用到的主要模式是 Greenlet , 它是以C扩展模块形式接入Python的轻量级协程。 Greenlet全部运行在主程序操作系统进程的内部,但它们被协作式地调度。 遇到IO阻塞时会 阅读全文
posted @ 2019-10-13 09:11
不要找借口
阅读(184)
评论(0)
推荐(0)
摘要:
一 greenlet模块 如果我们在单个线程内有20个任务,要想实现在多个任务之间切换,使用yield生成器的方式过于麻烦(需要先得到初始化一次的生成器,然后再调用send。。。非常麻烦),而使用greenlet模块可以非常简单地实现这20个任务直接的切换 单纯的切换(在没有io的情况下或者没有重复 阅读全文
posted @ 2019-10-13 09:10
不要找借口
阅读(185)
评论(0)
推荐(0)
摘要:
一 引子 一:其中第二种情况并不能提升效率,只是为了让cpu能够雨露均沾,实现看起来所有任务都被“同时”执行的效果,如果多个任务都是纯计算的,这种切换反而会降低效率。为此我们可以基于yield来验证。yield本身就是一种在单线程下可以保存任务运行状态的方法,我们来简单复习一下: 单纯地切换反而会降 阅读全文
posted @ 2019-10-13 09:09
不要找借口
阅读(201)
评论(0)
推荐(0)
摘要:
一 线程queue queue is especially useful in threaded programming when information must be exchanged safely between multiple threads. 有三种不同的用法 class queue. 阅读全文
posted @ 2019-10-13 09:06
不要找借口
阅读(112)
评论(0)
推荐(0)
摘要:
一 进程池与线程池 在刚开始学多进程或多线程时,我们迫不及待地基于多进程或多线程实现并发的套接字通信,然而这种实现方式的致命缺陷是:服务的开启的进程数或线程数都会随着并发的客户端数目地增多而增多,这会对服务端主机带来巨大的压力,甚至于不堪重负而瘫痪,于是我们必须对服务端开启的进程数或线程数加以控制, 阅读全文
posted @ 2019-10-13 09:06
不要找借口
阅读(152)
评论(0)
推荐(0)
摘要:
一 信号量 信号量也是一把锁,可以指定信号量为5,对比互斥锁同一时间只能有一个任务抢到锁去执行,信号量同一时间可以有5个任务拿到锁去执行,如果说互斥锁是合租房屋的人去抢一个厕所,那么信号量就相当于一群路人争抢公共厕所,公共厕所有多个坑位,这意味着同一时间可以有多个人上公共厕所,但公共厕所容纳的人数是 阅读全文
posted @ 2019-10-13 09:05
不要找借口
阅读(141)
评论(0)
推荐(0)
摘要:
一 死锁现象 所谓死锁: 是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程,如下就是死锁 执行效果 二 递归锁 解决方法,递归锁,在Python中为了支持 阅读全文
posted @ 2019-10-13 09:04
不要找借口
阅读(225)
评论(0)
推荐(0)
摘要:
一 引子 首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。就好比C++是一套语言(语法)标准,但是可以用不同的编译器来编译成可执行代码。 有名的编译器例如GCC,INTEL C++,Visual C++等。Python也一样,同样 阅读全文
posted @ 2019-10-13 08:52
不要找借口
阅读(192)
评论(0)
推荐(0)
摘要:
一 守护线程 无论是进程还是线程,都遵循:守护xxx会等待主xxx运行完毕后被销毁 需要强调的是:运行完毕并非终止运行 详细解释: 验证 执行结果 二 练习 思考下述代码的执行结果有可能是哪些情况?为什么? 阅读全文
posted @ 2019-10-13 08:50
不要找借口
阅读(115)
评论(0)
推荐(0)
摘要:
Thread对象的其他属性或方法 介绍 验证 执行结果 主线程等待子线程结束 执行结果 阅读全文
posted @ 2019-10-13 08:36
不要找借口
阅读(123)
评论(0)
推荐(0)
摘要:
一 谁的开启速度快? 1、在主进程下开启线程 执行结果如下,几乎是t.start ()的同时就将线程开启了,然后先打印出了hello,证明线程的创建开销极小 2、在主进程下开启子进程 执行结果如下,p.start ()将开启进程的信号发给操作系统后,操作系统要申请内存空间,让好拷贝父进程地址空间到子 阅读全文
posted @ 2019-10-13 08:35
不要找借口
阅读(190)
评论(0)
推荐(0)
摘要:
一 threading模块介绍 multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性,因而不再详细介绍 二 开启线程的两种方式 方式一 方式二 阅读全文
posted @ 2019-10-13 08:26
不要找借口
阅读(154)
评论(0)
推荐(0)
摘要:
一 什么是线程 在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 线程顾名思义,就是一条流水线工作的过程(流水线的工作需要电源,电源就相当于cpu),而一条流水线必须属于一个车间,一个车间的工作过程是一个进程,车间负责把资源整合到一起,是一个资源单位,而一个车间内至少有一条流水线。 阅读全文
posted @ 2019-10-13 08:25
不要找借口
阅读(191)
评论(0)
推荐(0)
摘要:
一 生产者消费者模型介绍 为什么要使用生产者消费者模型 生产者指的是生产数据的任务,消费者指的是处理数据的任务,在并发编程中,如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必须等待消费者处理完,才能继续生产数据。同样的道理,如果消费者的处理能力大于生产者,那么消费者就必须等待生产者。为了 阅读全文
posted @ 2019-10-13 08:11
不要找借口
阅读(283)
评论(0)
推荐(0)
摘要:
队列介绍 进程彼此之间互相隔离,要实现进程间通信(IPC),multiprocessing模块支持两种形式:队列和管道,这两种方式都是使用消息传递的 创建队列的类(底层就是以管道和锁定的方式实现) : 参数介绍: 主要方法介绍: 队列的使用 阅读全文
posted @ 2019-10-13 08:10
不要找借口
阅读(148)
评论(0)
推荐(0)
摘要:
一 互斥锁 进程之间数据不共享,但是共享同一套文件系统,所以访问同一个文件,或同一个打印终端,是没有问题的,而共享带来的是竞争,竞争带来的结果就是错乱,如下 如何控制,就是加锁处理。而互斥锁的意思就是互相排斥,如果把多个进程比喻为多个人,互斥锁的工作原理就是多个人都要去争抢同一个资源:卫生间,一个人 阅读全文
posted @ 2019-10-13 08:09
不要找借口
阅读(290)
评论(0)
推荐(0)
摘要:
一 守护进程 主进程创建子进程,然后将该进程设置成守护自己的进程,守护进程就好比崇祯皇帝身边的老太监,崇祯皇帝已死老太监就跟着殉葬了。 关于守护进程需要强调两点: 其一:守护进程会在主进程代码执行结束后就终止 其二:守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemo 阅读全文
posted @ 2019-10-13 08:08
不要找借口
阅读(158)
评论(0)
推荐(0)
摘要:
一 Process对象的join方法 在主进程运行过程中如果想并发地执行其他的任务,我们可以开启子进程,此时主进程的任务与子进程的任务分两种情况 情况一:在主进程的任务与子进程的任务彼此独立的情况下,主进程的任务先执行完毕后,主进程还需要等待子进程执行完毕,然后统一回收资源。 情况二:如果主进程的任 阅读全文
posted @ 2019-10-13 08:07
不要找借口
阅读(271)
评论(0)
推荐(0)
摘要:
一 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu\_count\(\)查看),在python中大部分情况需要使用多进程。 Python提供了multiprocessing。 multiprocessing模块用来开启 阅读全文
posted @ 2019-10-13 08:06
不要找借口
阅读(223)
评论(0)
推荐(0)
摘要:
一 什么是进程 进程:正在进行的一个过程或者说一个任务。而负责执行任务则是cpu。 二 进程与程序的区别 程序仅仅只是一堆代码而已,而进程指的是程序的运行过程。 举例: 想象一位有一手好厨艺的计算机科学家egon正在为他的女儿元昊烘制生日蛋糕。 他有做生日蛋糕的食谱, 厨房里有所需的原料:面粉、鸡蛋 阅读全文
posted @ 2019-10-13 08:03
不要找借口
阅读(210)
评论(0)
推荐(0)

浙公网安备 33010602011771号