09 2018 档案

pip模块的使用
摘要:安装pip: sudo apt-get install python-pip (python2的安装) sudo apt-get install python3-pip (python3的安装) 安装软件: pip3 install package升级: pip3 install --upgrade 阅读全文

posted @ 2018-09-29 20:23 zengsf 阅读(374) 评论(0) 推荐(0) 编辑

PDB调试模块
摘要:这里主要是一些对于调试常用的命令:1.直接通过命令端输入进行调试 以pdb调试模式运行(主要用这个) python3 -m pdb file.py 2.在代码中导入pdb模块 import pdb 功能:断点设置,单步执行,查看代码,查看函数,追踪变量等 pdb.set_trace() 功能 : 设 阅读全文

posted @ 2018-09-29 20:20 zengsf 阅读(819) 评论(0) 推荐(0) 编辑

共享仓库,远程仓库,多人协作,github操作
摘要:1.共享仓库: 创建共享仓库 1.创建文件夹 mkdir file 2.设置文件夹属主 chown tarena:tarena file 3.将该文件夹设置为可共享的git仓库 cd file git init --bare file1.git 4.设置本地仓库属主 chown -R tarena: 阅读全文

posted @ 2018-09-29 20:12 zengsf 阅读(4029) 评论(0) 推荐(0) 编辑

git 总结
摘要:git是一个开源的分布式版本控制系统。用于高效敏捷的管理大小项目代码。 什么是分布式和集中式呢: 集中式 : 代码集中管理,需要上传到中央服务器。每次更新都从中央服务器下载。 (svn) 分布式 : 每个节点都保存完整的代码,没有中央服务器。节点之间相互推送下载完成代码共享。 (git) git的特 阅读全文

posted @ 2018-09-26 20:30 zengsf 阅读(175) 评论(0) 推荐(0) 编辑

大文件存储
摘要:pymongo 实现gridfs存储 import gridfs GridFS() 功能:生成gridfs对象 将文件存到数据库中 从数据库取出文件 阅读全文

posted @ 2018-09-22 16:37 zengsf 阅读(547) 评论(0) 推荐(0) 编辑

小文件的存储
摘要:对于小文件的存储,指小于16M的文件 import bson bson.binary.Binary() 功能: 将bytes格式字符串装换为mongodb的二进制存储格式 将文件存储到数据库中: 从数据库中取出文件: 阅读全文

posted @ 2018-09-22 16:34 zengsf 阅读(1048) 评论(0) 推荐(0) 编辑

在python中的使用
摘要:操作步骤: 1. 连接数据库,生成数据库连接对象 conn = pymongo.MongoClient('localhost',27017) 2. 选择要操作的数据库,生成数据库对象 (__setitem__) db = conn.stu db = conn['stu'] 3. 获取集合对象 mys 阅读全文

posted @ 2018-09-22 15:44 zengsf 阅读(406) 评论(0) 推荐(0) 编辑

游标 cursor
摘要:* mongo shell下支持JS代码,可以通过JS获取游标,进而获取数据操作结果。 var cursor = db.class1.find() cursor.next() 获取下一条结果 cursor.hasNext() 查看是否有下一个对象 阅读全文

posted @ 2018-09-22 15:04 zengsf 阅读(249) 评论(0) 推荐(0) 编辑

文件的存储GridFS
摘要:1.存储路径 》可以理解就是存储路径,然后在通过路径来获取文件 将文件放在本地路径(网络路径)下,然后数据库中存储该文件的查找路径 db.log.insert({filename:"python.xmind",size:120,path:"/hoem/zengsf/net/mongoDB"}) 优点 阅读全文

posted @ 2018-09-22 15:03 zengsf 阅读(1733) 评论(0) 推荐(0) 编辑

如何创建一个固定集合
摘要:在mongodb中还可以创建一个固定大小的集合 特点:能够淘汰早期数据 插入和顺序查找速度更快 可以控制集合的空间大小 使用:临时缓冲 日志处理 创建固定集合: db.createCollection("collection",{capped:true,size:1000,max:1000}) ca 阅读全文

posted @ 2018-09-22 14:53 zengsf 阅读(676) 评论(0) 推荐(0) 编辑

聚合操作及聚合管道
摘要:聚合操作 对文档的筛选结果进程整理统计 db.collection.aggregate() 功能:完成聚合操作 参数:聚合条件 > 聚合操作符 聚合操作符$group 分组聚合 需要配合具体的分组选项 $sum 求和 db.class1.aggregate({$group:{_id:'$gender 阅读全文

posted @ 2018-09-20 19:44 zengsf 阅读(222) 评论(0) 推荐(0) 编辑

索引约束
摘要:1. 索引表也需要占用一定的磁盘空间2. 当数据发生更新时索引表也要随之更新 那什么时候创建索引呢: 数据量较小时不适合创建索引,当数据库进程频繁的修改操作而不是查找操作时也不适合创建索引。针对一个集合并不是创建索引越多越好。 阅读全文

posted @ 2018-09-20 19:33 zengsf 阅读(101) 评论(0) 推荐(0) 编辑

索引类型
摘要:复合索引 根据多个域创建一个索引 db.class1.ensureIndex({name:1,age:-1},{name:"name_age"}) 数组索引,子文档索引 定义:如果对某个数组和子文档域创建索引,那么根据数组和子文档的查找均为索引查找 如果对score域创建索引则 下面的查找也是索引查 阅读全文

posted @ 2018-09-20 19:32 zengsf 阅读(160) 评论(0) 推荐(0) 编辑

索引
摘要:定义:指建立指定键值及所在文档存储位置的对照清单,使用索引可以方便我们进行快速查找,减少遍历次数提高查找效率 创建索引: db.collection.ensureIndex() 功能 : 创建索引 参数 : 第一个为对哪个域创建索引 第二个为索引的选项 对name域创建索引:db.class1.en 阅读全文

posted @ 2018-09-20 19:26 zengsf 阅读(99) 评论(0) 推荐(0) 编辑

数据类型的操作
摘要:时间数据类型 1.mongo中存储时间大多为ISOData 2.获取当前时间 1. 使用new Date() 自动生成当前时间 2. 使用 ISODate() 生成当前时间 3. 获取计算机时间生成时间格式字符串 Date() 3.ISODate() 功能: 生成mongodb时间存储类型 参数: 阅读全文

posted @ 2018-09-20 19:20 zengsf 阅读(127) 评论(0) 推荐(0) 编辑

数组修改操作符的使用
摘要:$push 向数组中添加一项 向score数组中添加一项 db.class2.update({name:'zengsf'},{$push:{score:91}}) $pushAll 向数组中添加多项 向zengsf中的score数组中添加多项 db.class2.update({name:'zeng 阅读全文

posted @ 2018-09-20 18:51 zengsf 阅读(106) 评论(0) 推荐(0) 编辑

修改操作符的使用
摘要:$set 修改一个域的值,增加一个域 e.g. 阿哲年龄修改为33 db.class1.update({name:'阿哲'},{$set:{age:33}}) e.g. 如果sex域不存在则会添加这个域 db.class1.update({name:'阿蓉'},{$set:{sex:'w'}}) $ 阅读全文

posted @ 2018-09-20 18:42 zengsf 阅读(254) 评论(0) 推荐(0) 编辑

查找结果的操作函数
摘要:db.collection.distinct(field) 功能:查看某个域的值范围 e.g. 获取某个域的值,去重 db.class1.distinct("age")db.collection.find().pretty() 功能:格式化显示查询结果,就是一个一个文档显示。 db.class1.f 阅读全文

posted @ 2018-09-19 19:56 zengsf 阅读(142) 评论(0) 推荐(0) 编辑

query更多的筛选用法
摘要:比较操作符$eq : = 写法:db.class0.find({age:{$eq:18}},{name:1,_id:0}); 查找年龄等于18$lt :<$lte : <=$gt : > db.class0.find({age:{$gt:17,$lt:20}},{name:1,_id:0}); 查找 阅读全文

posted @ 2018-09-19 19:54 zengsf 阅读(936) 评论(0) 推荐(0) 编辑

文档的增删改查
摘要:增加文档: 方法1: db.collection.insert({}) 插入单个文档 db.collection.insertOne({}) 插入当个文档 db.collection.insert([{},{},{}]) 插入多个文档,参数用中括号 db.collection.insertMany( 阅读全文

posted @ 2018-09-19 19:53 zengsf 阅读(234) 评论(0) 推荐(0) 编辑

文档及数据类型
摘要:mongodb中数据的组织形式 》文档 mongodb 文档: 是以键值对的形式组成的一组文档。类似python中字典描述数据的方式 键:即文档的域,表达了一个键值对的含义 键的命名规则: 1.utf-8格式字符串 2.不能使用“\0” 3.一个文档中的键不能重复 值:即文档存储的数据 *文档中键值 阅读全文

posted @ 2018-09-19 19:22 zengsf 阅读(313) 评论(0) 推荐(0) 编辑

对集合的操作
摘要:集合创建原则 1.集合中的文档要描述同一类事物 2.数据库中同一类数据尽量集中存放在相同的集合 3.集合中的文档嵌套层数不要太多 集合的命名规则: 1. 合法的utf-8字符串 2. 不能有'\0' 3. 不能以 system. 开头。是系统的保留前缀 4. 不能和关键字重复 创建集合 方法1: d 阅读全文

posted @ 2018-09-19 19:07 zengsf 阅读(124) 评论(0) 推荐(0) 编辑

对数据库的操作
摘要:数据库命名规则: 1. 默认使用utf-8字符 2. 不能含有空格 . / \ '\0' 字符 3. 长度不能超过64字节 4. 不能和系统数据库重名 5.严格区分大小写(命令语句也是一样) 如何进入数据库MongoDB: mongo: 进入数据库交互操作界面 mongo 库名 创建数据库 use 阅读全文

posted @ 2018-09-19 19:01 zengsf 阅读(165) 评论(0) 推荐(0) 编辑

数据库的终端命令操作
摘要:设置数据库的存储位置 mongod --dbpath 目录 e.g. mongod --dbpath dbs 设置数据库端口 mongod --port 8080 * 默认监听端口27017 数据库的备份和恢复 备份 mongodump -h 127.0.0.1 -d 库名 -o 备份名 e.g. 阅读全文

posted @ 2018-09-19 18:52 zengsf 阅读(575) 评论(0) 推荐(0) 编辑

MongoDB数据库的特点以及结构
摘要:mongodb标签:非关系型数据库 文档型数据库 最像关系型的非关系型数据库 特点: 1. 由c++编写的数据库管理系统 2. 支持丰富的增删改查功能 3. 支持丰富的数据类型 4. 支持众多的编程语言结构 (python php c++ js c#) 5. 在NoSql 中技术相对比较成熟 组织结 阅读全文

posted @ 2018-09-19 18:45 zengsf 阅读(465) 评论(0) 推荐(0) 编辑

数据库的概念
摘要:数据存储阶段 文件管理阶段(.txt .doc .xls等优缺点) 优点 : 数据可以长期保存 数据有一定格式化规范 可以大量存储 使用简单方便 缺点 : 数据一致性差 用户查找修改不方便 数据冗余 数据库管理阶段 优点 : 数据组织结构化,降低了冗余 提高了增删改查的效率 便于扩展,方便程序调试做 阅读全文

posted @ 2018-09-19 18:41 zengsf 阅读(271) 评论(0) 推荐(0) 编辑

httpserver
摘要:from socket import * from threading import Thread import sys import traceback #httpserver类,封装具体的服务器功能 class HTTPServer(object): def __init__(self, server_addr, static_dir): #增加服务器对象属性 ... 阅读全文

posted @ 2018-09-17 20:28 zengsf 阅读(332) 评论(0) 推荐(0) 编辑

协程
摘要:定义:纤程,微线程。协程的本质是一个单线程程序,所以协程不能够使用计算机多核资源。 作用:能够高效的完成并发任务,占用较少的资源。因此协程的并发量较高 原理:通过记录应用层的上下文栈区,实现在运行中进行上下文跳转,达到可以选择性的运行想要运行的部分,因此提高程序的运行效率。 优点:消耗资源少。无需切 阅读全文

posted @ 2018-09-17 20:24 zengsf 阅读(181) 评论(0) 推荐(0) 编辑

进程和线程的区别和联系
摘要:1.两者都是多任务编程方式,都能够使用计算机的多核资源2.进程的创建删除消耗的计算机资源比线程要多3.进程空间独立,数据相互不干扰,有专门的IPC,线程使用全局变量进程通信4.一个进程可以创建多个线程分支,两者之间存在包含关系5.多个线程公用进程的资源,在资源操作时往往需要同步互斥6进程线程在系统中 阅读全文

posted @ 2018-09-16 08:21 zengsf 阅读(383) 评论(0) 推荐(0) 编辑

python线程的GIL问题(全局解释器锁)
摘要:造成原因: python 》 支持线程操作 》IO的同步和互斥 --》 加锁 》 超级锁,给解释器加锁 》解释器同一时刻只能解释一个线程 造成的后果: 一个解析器同一时刻只有解释执行一个线程,所以导致python线程效率低下。但是当遇到IO阻塞时线程会主动让出解释器,因此python线程更加适合高延 阅读全文

posted @ 2018-09-14 23:07 zengsf 阅读(365) 评论(0) 推荐(0) 编辑

线程同步互斥的方法
摘要:线程的event: 创建对象: e = threading.Event() 事件阻塞函数 e.wait([timeout]) 设置事件 e.set() 清除事件 e.clear() 线程锁: lock = threading.Lock() 创建锁对象lock.acquire() 上锁lock.rel 阅读全文

posted @ 2018-09-14 23:06 zengsf 阅读(133) 评论(0) 推荐(0) 编辑

threading模块创建线程
摘要:什么是线程 (thread) 线程也是一种多任务编程方式,可以使用计算机的多核资源。线程被称为轻量级的进程。 线程特征 *线程计算机多核分配的最小单位 *一个进程可以包含多个线程 *线程也是一个运行的过程,消耗计算机资源,多个线程共享进程的资源和空间 *线程的创建删除消耗的资源都要远远小于进程 *多 阅读全文

posted @ 2018-09-14 23:04 zengsf 阅读(304) 评论(0) 推荐(0) 编辑

信号量(信号灯)
摘要:原理: 给定一个数量,对多个进程可见,且多个进程都可以操作。进程通过对数量多少的判断执行各自的行为。 multiprocessing --> Semaphore() 函数方法: sem = Semaphore(num) 功能 : 创建信号量对象 参数 : 信号量的初始值 返回 : 信号量对象 sem 阅读全文

posted @ 2018-09-14 22:59 zengsf 阅读(173) 评论(0) 推荐(0) 编辑

信号通道
摘要:通道原理: 一个进程向另一个进程发送一个信号来传递某种讯号,接受这根据收到的信号进行相应的行为 在命令端可以用这两个命令来查看和发起信号 kill -l 查看系统信号 kill -sig PID 向一个进程发送信号 一些常见的信号 SIGHUP 断开连接 SIGINT ctrl-c SIGQUIT 阅读全文

posted @ 2018-09-14 22:40 zengsf 阅读(353) 评论(0) 推荐(0) 编辑

内存共享
摘要:通信原理: 在内存中开辟一块空间,对多个进程可见,进程可以写入输入,但是每次写入的内容会覆盖之前的内容。 函数方法: shm = Value(ctype,obj) 功能: 开辟共享内存空间 参数: ctype 字符串 要转变的c的类型 obj 共享内存的初始数据 返回值 : 返回共享内存对象 *sh 阅读全文

posted @ 2018-09-12 22:53 zengsf 阅读(194) 评论(0) 推荐(0) 编辑

消息队列Queue
摘要:队列: 先进先出通信原理: 在内存中建立队列数据结构模型。多个进程都可以通过队列存入内容,取出内容的顺序和存入顺序保持一致 函数方法: q = Queue(maxsize = 0) 功能 : 创建队列对象 参数 : maxsize : 默认表示系统自动分配队列空间 如果传入正整数则表示最多存放多少条 阅读全文

posted @ 2018-09-12 22:48 zengsf 阅读(141) 评论(0) 推荐(0) 编辑

管道通信Pipe
摘要:通信原理: 在内存中开辟管道空间,生成管道操作对象,多个进程使用“同一个”管道对象进程操作即可实现通信 函数方法: fd1,fd2 = Pipe(duplex = True) 功能: 创建管道 参数:默认表示双向管道 如果设置为False则为单向管道 返回值 : 两个管道对象,分别表示管道的两端 如 阅读全文

posted @ 2018-09-12 22:44 zengsf 阅读(212) 评论(0) 推荐(0) 编辑

进程池
摘要:产生原因: 如果有大量的任务需要多进程完成,则可以需要频繁的创建删除进程,给计算机带来了较多的资源消耗 处理原理: 创建适当的进程放入进程池,用来处理待处理事件,处理完毕后进程不销毁,仍然在进程池中等待处理其他事件。进程的复用降低了资源的消耗。 使用方法: 1.创建进程池,在池内放入适当的进程 2. 阅读全文

posted @ 2018-09-12 22:35 zengsf 阅读(148) 评论(0) 推荐(0) 编辑

multiprocessing创建自定义进程类
摘要:1.继承Process2.编写自己的__init__,同时加载父类init方法3.重写run方法,可以通过生成的对象调用start自动运行 阅读全文

posted @ 2018-09-12 22:21 zengsf 阅读(199) 评论(0) 推荐(0) 编辑

multiprocessing模块
摘要:执行步骤; 1. 需要将要做的事情封装成函数 2. 使用multiprocessing提供的类Process创建进程对象 3. 通过进程对象和Process初始化进程进行进程的设置,绑定函数 4. 启动进程,会自动执行绑定的函数 5. 完成进程的回收 函数: Process() 功能: 创建进程对象 阅读全文

posted @ 2018-09-11 23:08 zengsf 阅读(142) 评论(0) 推荐(0) 编辑

孤儿进程及僵尸进程
摘要:孤儿进程: 父进程先于子进程退出,此时子进程就称之为孤儿进程 *孤儿进程会被操作系统指定的进程收养,系统进程就成为孤儿进程的新的父进程 僵尸进程: 子进程先于父进程退出,但是父进程没有处理子进程的退出状态,此时子进程就会成为僵尸进程 *僵尸进程会存留少量PCB信息在内存中,如果大量的僵尸进程没有处理 阅读全文

posted @ 2018-09-10 22:42 zengsf 阅读(201) 评论(0) 推荐(0) 编辑

创建一个新的进程os.fork
摘要:import os pid = os.fork()功能:创建新的进程参数:无返回值:失败返回一个负数 成功:在原有进程中返回一个新的进程的PID号 在新的进程中返回0 *子进程会复制父进程全部代码段,包括fork之前产生的内存空间*子进程从fork的下一句开始执行,与父进程互补干扰*父子进程的执行顺 阅读全文

posted @ 2018-09-10 22:40 zengsf 阅读(318) 评论(0) 推荐(0) 编辑

进程的特征
摘要:1.进程之间运行互不影响,各自独立运行2.进程是操作系统资源分配的最小单位3.每个进程空间独立,各自占有一定的虚拟内存 阅读全文

posted @ 2018-09-10 22:39 zengsf 阅读(668) 评论(0) 推荐(0) 编辑

进程的状态
摘要:就绪态:进程具备执行条件,等待系统分配资源运行态:进程占有cpu处于运行状态等待态:进程暂时不具备执行条件,阻塞等待满足条件后再执行 新建态:创建一个新的进程,获取资源的过程终止态:进程执行结束,资源释放回放的过程 liunx终端命令:ps -aux >STAT D 等待态 阻塞 不可中断等待态 S 阅读全文

posted @ 2018-09-10 22:37 zengsf 阅读(143) 评论(0) 推荐(0) 编辑

多进程概念
摘要:意义:充分利用计算机的资源提高程序的运行效率定义:通过应用程序利用计算机的多个核心达到同时执行多个任务的目的,一次提高计算机运行效率 并行和并发的区别: 并行:多个计算机核心同时在处理多个任务,这时多个任务间是并行关系。 并发:同时运行多个任务,内核在多个任务间不断切换,达到好像都在处理运行的效果。 阅读全文

posted @ 2018-09-10 22:35 zengsf 阅读(347) 评论(0) 推荐(0) 编辑

IO多路复用
摘要:定义:同时监控多个IO事件,当哪个IO事件准备就绪,就执行哪个IO事件,以此形成可用同时操作多个IO的并发行为,避免一个IO阻塞,造成所有的IO都无法执行IO准备就绪:是一种IO必然要发生的临界状态 具体方案:select > windows linux unixpoll > linux unixe 阅读全文

posted @ 2018-09-07 22:37 zengsf 阅读(144) 评论(0) 推荐(0) 编辑

超时检测
摘要:将原本阻塞的函数设置一个最长阻塞时间。如果时间内条件达成则正常运行,如果仍然阻塞则视为超时,继续向下运行或产生异常 s.settimeout(sec)设置套接字的超时时间 阅读全文

posted @ 2018-09-07 22:32 zengsf 阅读(141) 评论(0) 推荐(0) 编辑

非阻塞IO
摘要:通过修改IO事件的属性,使其变为非阻塞状态。(让一些条件阻塞函数不在阻塞) *非阻塞IO往往和循环判断一起使用 s.setblocking(False) 将套接字设置为非阻塞状态 阅读全文

posted @ 2018-09-07 22:31 zengsf 阅读(104) 评论(0) 推荐(0) 编辑

阻塞IO
摘要:阻塞IO是IO的默认形态,是效率较低的一种IO情形。 阻塞情况: *因为某种条件没有达成造成的阻塞 e.g. accept,input,recv *处理IO数据传输时间较长形成的阻塞 e.g. 网络传输过程,文件读写过程 阅读全文

posted @ 2018-09-07 22:29 zengsf 阅读(131) 评论(0) 推荐(0) 编辑

IO的概念
摘要:什么是IO: 在内存中存在数据交换的操作都可以认为是IO操作 和终端交互:input print 和磁盘交互:read write 和网络交互:recv send IO密集型程序:在程序执行过程中存在大量IO操作,而cpu运算操作较少。消耗cpu较小,运行效率较低 计算密集型程序(cpu密集型程序) 阅读全文

posted @ 2018-09-07 22:22 zengsf 阅读(691) 评论(0) 推荐(0) 编辑

http_server实例代码
摘要:from socket import * def handleClient(connfd): print("-----") request = connfd.recv(4096) print(request) #将request请求按行分割 request_lines = request.splitlines() for line in requ... 阅读全文

posted @ 2018-09-07 22:16 zengsf 阅读(159) 评论(0) 推荐(0) 编辑

套接字中的recv与send的注意事项
摘要:recv() 特征* 如果连接的另一端断开连接,则recv立即返回空子串* recv是从接受缓冲区取出内容,当缓冲区为空则阻塞* recv如果一次接受不完缓冲区内容,下次会继续接收 send() 特征* 如果发送的另外一段不存在则会产生Pipe Broken* send是向发送缓冲区发送内容,当缓冲 阅读全文

posted @ 2018-09-06 22:50 zengsf 阅读(541) 评论(0) 推荐(0) 编辑

tcp流式套接字和udp数据报套接字编程区别
摘要:1. 流式套接字采用字节流方式进行传输,而数据报套接字 使用数据报形式传输数据2. tcp套接字会产生粘包,udp有消息边界,不会形成粘包。3. tcp编程可以保证消息的完整性,udp则不能保证4. tcp需要listen accept,udp不用5. tcp消息的发送接收使用recv send s 阅读全文

posted @ 2018-09-06 22:49 zengsf 阅读(571) 评论(0) 推荐(0) 编辑

TCP的粘包
摘要:产生原因: * tcp传输以字节流的方式发送消息,消息之间没有边界 * 发送比接受的速度快,因此不能保证每次都能及时被接收 影响 : 对每次发送的内容是一个独立的意思需要单独识别 如何处理: 1. 每次发送后加一个结尾标志 2. 发送一个数据结构 3. 协调收发速度, 每次发送都预留一个接收时间 阅读全文

posted @ 2018-09-06 22:46 zengsf 阅读(152) 评论(0) 推荐(0) 编辑

socket创建UDP服务端和客户端
摘要:UDP服务端代码示例: from socket import * #1.创建数据报套接字 sockfd = socket(AF_INET, SOCK_DGRAM) #2.绑定服务端地 sockfd.bind(("0.0.0.0", 8888)) while True: #3.接收消息 返回值:data 接收到的内容 addr 消息发送方的地址 #recvfrom每... 阅读全文

posted @ 2018-09-06 22:42 zengsf 阅读(719) 评论(0) 推荐(0) 编辑

面向连接与面向非连接的传输服务区别
摘要:面向连接的传输服务 》 基于tcp协议的数据传输 传输特征: 可靠的数据传输 可靠性 : 数据在传输中,无失序 无差错 无丢失 无重复 在数据传输前和传输结束后需要建立连接和断开连接 三次握手 : 在面向连接的传输服务中建立连接的过程 1. 客户端向服务器发送连接请求 2. 服务器接受到请求进行确认 阅读全文

posted @ 2018-09-05 22:16 zengsf 阅读(1128) 评论(0) 推荐(0) 编辑

socket创建TCP服务端和客户端
摘要:看情况选择相对应的套接字*面向连接的传输--tcp协议--可靠的--流式套接字(SOCK_STREAM)*面向无连接的传输--udp协议--不可靠的--数据报套接字(SOCK_DGRAM) 在liunx中 telnet ip port 可以当成临时客服端 阅读全文

posted @ 2018-09-05 22:10 zengsf 阅读(2210) 评论(0) 推荐(0) 编辑

sha1的加密
摘要:from hashlib import sha1 #给password加密s1 = sha1() #创建sha1加密对象s1.update(password.encode("utf-8")) #转码(字节流)password2 = s1.hexdigest() #将字节码转成16进制 阅读全文

posted @ 2018-09-04 23:02 zengsf 阅读(1230) 评论(0) 推荐(0) 编辑

封装pymysql
摘要:from pymysql import connect class MysqlHelp: def __init__(self,database,host = "localhost", user = "zengsf", password = "密码", charset = "utf8", port = 3306): self.database =... 阅读全文

posted @ 2018-09-04 23:00 zengsf 阅读(132) 评论(0) 推荐(0) 编辑

pymysql中的参数及方法
摘要:1、connect(参数) Connection = Connect(*args, **kwargs) Establish a connection to the MySQL database. Accepts several arguments: host: Host where the data 阅读全文

posted @ 2018-09-04 22:41 zengsf 阅读(1036) 评论(0) 推荐(0) 编辑

MySQL与python交互
摘要:需要导入模块名 pymysql pymysql使用流程 1、建立数据库连接对象(db=pymysql.connet("root")) 2、创建游标对象cur(操作数据库的对象) 3、游标对象:cur.execute("SQL命令") 4、提交到数据库执行:db.commit() 5、关闭游标对象cu 阅读全文

posted @ 2018-09-04 22:28 zengsf 阅读(113) 评论(0) 推荐(0) 编辑

事务和事务回滚
摘要:1、定义:一件事从开始发生到结束的整个过程 2、作用:确保数据的一致性 3、事务和事务回滚的应用 1、SQL命令会 autocommit 到数据库执行 2、事务操作 1、开启事务 mysql> begin; | start transactions; mysql> SQL命令... ## 此时aut 阅读全文

posted @ 2018-09-04 22:26 zengsf 阅读(2570) 评论(0) 推荐(0) 编辑

MySQL调优
摘要:1、创建索引 在select、where、order by常涉及到的字段上建立索引 2、选择合适的存储引擎 1、读操作多:MyISAM 2、写操作多:InnoDB 3、SQL语句的优化(避免全表扫描) 1、where字句尽量不适用 != ,否则放弃索引全表扫描 2、尽量避免null判断,否则放弃索引 阅读全文

posted @ 2018-09-04 22:24 zengsf 阅读(80) 评论(0) 推荐(0) 编辑

数据的备份以及恢复
摘要:1、数据备份(mysqldump,在linux终端操作): 1、命令格式 mysqldump -u用户名 -p 源库名 > ***.sql 示例: ~$ mysqldump -uroot -p zengsf > zengsf.sql Enter password: 2、源库名的表示方式 --all- 阅读全文

posted @ 2018-09-04 22:17 zengsf 阅读(172) 评论(0) 推荐(0) 编辑

MySQL的用户账户管理
摘要:1、开启MySQL远程连接 1、sudo -i 2、cd /etc/mysql/mysql.conf.d/ 3、vim mysqld.cnf #bind-address = 127.0.0.1 把前面#去掉,保存退出。 4、/etc/init.d/mysql restart 2、添加授权用户 1、用 阅读全文

posted @ 2018-09-03 22:03 zengsf 阅读(139) 评论(0) 推荐(0) 编辑

MySQL存储引擎(engine:处理表的处理器)
摘要:1、基本的操作命令: 1、查看所有存储引擎 show engines; 2、查看已有表的存储引擎; show create table 表名; 3、创建表指定的存储引擎 create table 表名(...)engine=MyISAM,charset=utf8; 4、已有表更改存储引擎 alter 阅读全文

posted @ 2018-09-03 22:01 zengsf 阅读(161) 评论(0) 推荐(0) 编辑

MySQL中的锁理解
摘要:1、目的:解决客户端并发访问的冲突问题 2、锁的分类 1、锁类型 1、读锁(共享锁) 查询(select):加读锁之后,别人不能更改表记录,但是可以进行查询。 2、写锁(互斥锁,排他锁) 更新(update):加写锁之后别人不能查,不能改。 2、锁粒度 1、行级锁:Innodb(存储引擎) sele 阅读全文

posted @ 2018-09-03 22:00 zengsf 阅读(178) 评论(0) 推荐(0) 编辑

多表查询
摘要:1、两种方式 1、select 字段名列表1,字段名列表2 from 表名列表,表名列表2; (笛卡尔积) 1、记录多的表的每一条记录,去匹配另一张表的所有记录 2、两张表的记录条数相同,则后表的每一条记录去匹配前表的所有的记录 2、... where 条件; 示例: 阅读全文

posted @ 2018-09-03 21:58 zengsf 阅读(163) 评论(0) 推荐(0) 编辑

嵌套查询(子查询)
摘要:1、定义 :把内层的查询结果作为外层的查询条件 2、语法格式 select ... from 表名 where 字段名 运算符 (select ....from 表名 where 条件); 阅读全文

posted @ 2018-09-03 21:55 zengsf 阅读(1682) 评论(0) 推荐(0) 编辑

MySQL中表的复制
摘要:1、语法 create table 表名 select .. from 表名 where 条件; 2、示例 1、复制MOSHOU.sanguo表的全部记录和字段,sanguo2 create table sanguo2 select * from MOSHOU.sanguo; 2、复制MOSHOU. 阅读全文

posted @ 2018-09-02 11:44 zengsf 阅读(327) 评论(0) 推荐(0) 编辑

文件的导入与导出
摘要:1、数据导入 1、作用 :把文件系统的内容导入到数据库中 2、语法 load data infile "/var/lib/mysql-files/文件名" into table 表名 fields terminated by "分隔符" lines terminated by "\n"; 3、将sc 阅读全文

posted @ 2018-09-02 11:41 zengsf 阅读(1226) 评论(0) 推荐(0) 编辑

索引
摘要:1、普通索引(index) 1、使用规则 1、可设置多个字段 2、字段值无约束 3、key标志 :MUL 4、把经常用来查询的字段设置为索引字段 2、创建index 1、创建表时 create table 表名(... index(字段名),index(字段名)); 2、已有表 create ind 阅读全文

posted @ 2018-09-02 11:38 zengsf 阅读(124) 评论(0) 推荐(0) 编辑

利用索引与不用索引区别(profiles)
摘要:1、定义 对数据库表的一列或多列的值进行排序的一种结构(Btree方式)=(相当于二分查找法) 2、优点 加快数据检索速度 3、缺点 1、占用物理存储空间 2、当对表中数据更新时,索引需要动态维护,降低数据维护速度 4、索引示例 1、开启运行时间检测 :set profiling=1; 2、执行查询 阅读全文

posted @ 2018-09-02 10:28 zengsf 阅读(340) 评论(0) 推荐(0) 编辑

导航

统计

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