摘要: 使用Python操作MySQL数据库 一、数据库的安装和连接 1.1 PyMySQL的安装 1.2 python连接数据库 1.2.1 更多参数版 二、创建表操作 三、操作数据 3.1 插入操作 3.2 查询操作 Python查询Mysql使用 fetchone() 方法获取单条数据,使用 :方法获 阅读全文
posted @ 2019-11-13 22:19 つつつつつつ 阅读(437) 评论(0) 推荐(0) 编辑
摘要: MySQL性能分析之Explain Explain基础 关于explain命令相信大家并不陌生,具体用法和字段含义可以 "参考官网" ,这里需要强调rows是核心指标,绝大部分rows小的语句执行一定很快(有例外,下面会讲到)。所以优化语句基本上都是在优化rows。 5、possible_keys: 阅读全文
posted @ 2019-11-13 22:15 つつつつつつ 阅读(179) 评论(0) 推荐(0) 编辑
摘要: MySQL索引的数据结构 B+树介绍 一、树 树状图是一种数据结构 ,它是由n(n =1)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 它具有以下的特点:每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只 阅读全文
posted @ 2019-11-13 22:10 つつつつつつ 阅读(542) 评论(0) 推荐(0) 编辑
摘要: MySQL索引原理 一、初识索引 1.1 为什么要有索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重。说起加速查询,就不得不提到索引了。 1.2 阅读全文
posted @ 2019-11-13 22:02 つつつつつつ 阅读(470) 评论(0) 推荐(0) 编辑
摘要: 一、综合练习 1.1 init.sql文件内容 sql / 数据导入: Navicat Premium Data Transfer Source Server : localhost Source Server Type : MySQL Source Server Version : 50624 S 阅读全文
posted @ 2019-11-13 21:44 つつつつつつ 阅读(735) 评论(0) 推荐(0) 编辑
摘要: MySQL多表查询 一、准备 建表与数据准备: 二、多表连接查询 重点: 外链接语法 2.1 交叉连接 不适用任何匹配条件。生成笛卡尔积 2.2 内连接 只连接匹配的行 2.3 外链接之左连接 优先显示左表全部记录 2.4 外链接之右连接 优先显示右表全部记录 2.5 全外连接 显示左右两个表全部记 阅读全文
posted @ 2019-11-13 21:42 つつつつつつ 阅读(226) 评论(0) 推荐(0) 编辑
摘要: MySQL单表查询 一、单表查询的语法及关键字执行的优先级 1.1 单表查询语法 1.2 关键字执行的优先级 from:找到表 where:拿着where指定的约束条件,去文件/表中取出一条条记录 group by:将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组 阅读全文
posted @ 2019-11-13 21:38 つつつつつつ 阅读(239) 评论(0) 推荐(0) 编辑
摘要: MySQL记录操作 一、概览 MySQL数据操作: DML 在MySQL管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括: 使用INSERT实现数据的插入 UPDATE实现数据的更新 使用DELETE实现数据的删除 使用SELECT查询数据以及。 二、插入数据(insert) 三、 阅读全文
posted @ 2019-11-13 21:28 つつつつつつ 阅读(278) 评论(0) 推荐(0) 编辑
摘要: MySQL表的完整性约束 一、概览 为了防止不符合规范的数据进入数据库,在用户对数据进行插入、修改、删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确、有效、相容。 约束条件与数据类型的宽度一样,都是可选参数,主要分为以下几种: 阅读全文
posted @ 2019-11-13 21:27 つつつつつつ 阅读(162) 评论(0) 推荐(0) 编辑
摘要: MySQL支持的数据类型 一、数值类型 MySQL支持所有标准SQL数值数据类型。这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。 关键字INT是INTEGER的同义词, 阅读全文
posted @ 2019-11-13 21:21 つつつつつつ 阅读(223) 评论(0) 推荐(0) 编辑
摘要: MySQL表操作 一、表介绍 表就相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段 还记得我们之前写过的‘员工信息表作业’么?存储这员工信息的文件是这样的: 如果把上面这个文件改成一张表,应该是下面这个样子 | id | name | age | 阅读全文
posted @ 2019-11-13 21:12 つつつつつつ 阅读(239) 评论(0) 推荐(0) 编辑
摘要: MySQL存储引擎概述 一、mysql存储引擎概述 1.1 什么是存储引擎? MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应 阅读全文
posted @ 2019-11-13 21:02 つつつつつつ 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 数据库基础 一、楔子 假设现在你已经是某大型互联网公司的高级程序员,让你写一个火车票购票系统,来hold住十一期间全国的购票需求,你怎么写? 由于在同一时段抢票的人数太多,所以你的程序不可能写在一台机器上,应该是多台机器一起分担用户的购票请求。 那么问题就来了,票务信息的数据存在哪里?存在文件里么? 阅读全文
posted @ 2019-11-13 20:36 つつつつつつ 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 大白话五种IO模型 一、I/O模型介绍 为了更好地了解I/O模型,我们需要事先回顾下: "同步、异步、阻塞、非阻塞" 同步(synchronous) I/O和异步(asynchronous) I/O,阻塞(blocking) I/O和非阻塞(non blocking)I/O分别是什么,到底有什么区别 阅读全文
posted @ 2019-11-13 20:30 つつつつつつ 阅读(435) 评论(0) 推荐(0) 编辑
摘要: Python程序中的协程操作 gevent模块 一、安装 安装:pip3 install gevent 二、Gevent模块介绍 Gevent 是一个第三方库,可以轻松通过gevent实现并发同步或异步编程,在gevent中用到的主要模式是Greenlet,它是以C扩展模块形式接入Python的轻量 阅读全文
posted @ 2019-11-13 20:19 つつつつつつ 阅读(128) 评论(0) 推荐(0) 编辑
摘要: Python程序中的协程操作 greenlet模块 一、安装模块 安装: 二、greenlet实现状态切换 单纯的切换(在没有io的情况下或者没有重复开辟内存空间的操作),反而会降低程序的执行速度。 三、效率对比 greenlet只是提供了一种比generator更加便捷的切换方式,当切到一个任务执 阅读全文
posted @ 2019-11-13 20:16 つつつつつつ 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 协程基础 一、引言 之前我们学习了线程、进程的概念,了解了在操作系统中进程是资源分配的最小单位,线程是CPU调度的最小单位。按道理来说我们已经算是把cpu的利用率提高很多了。但是我们知道无论是创建多进程还是创建多线程来解决问题,都要消耗一定的时间来创建进程、创建线程、以及管理他们之间的切换。 随着我 阅读全文
posted @ 2019-11-13 20:15 つつつつつつ 阅读(163) 评论(0) 推荐(0) 编辑
摘要: Python程序中的线程操作 concurrent模块 一、Python标准模块——concurrent.futures 官方文档:https://docs.python.org/dev/library/concurrent.futures.html 二、介绍 concurrent.futures模 阅读全文
posted @ 2019-11-13 20:11 つつつつつつ 阅读(307) 评论(0) 推荐(0) 编辑
摘要: Python程序中的线程操作 线程队列 一、线程队列 queue队列:使用 ,用法与进程Queue一样 queue is especially useful in threaded programming when information must be exchanged safely betwe 阅读全文
posted @ 2019-11-13 20:09 つつつつつつ 阅读(153) 评论(0) 推荐(0) 编辑
摘要: Python程序中的线程操作 锁 一、同步锁 1.1 多个线程抢占资源的情况 1.1.1 对公共数据的操作 1.2 同步锁的引用 1.3 互斥锁与join的区别 二、死锁与递归锁 进程也有死锁与递归锁,在进程那里忘记说了,放到这里一起说了。 所谓死锁:是指两个或两个以上的进程或线程在执行过程中,因争 阅读全文
posted @ 2019-11-13 20:05 つつつつつつ 阅读(115) 评论(0) 推荐(0) 编辑