Stephen Blog

Thinking will not overcome fear but action will.

Scrapy Startproject Genspider Templates

"scrapy startproject genspider templates"

前言 Scrapy爬虫框架,在写多了genspider 爬虫模板的时候,就有点觉得有点繁琐的情况。 本文主要解释scrapy的模板创建的流程,最后实战一下创建属于自己的模板。 本文适合于对scrapy框架有一定的了解的读者。 环境 系统环境 Distributor ID: Ubuntu Description: Ubuntu 18.04.4 LTS Release: 18.04 Co...

Python Threading

"python threading"

前言 Python多线程是通过threading模块来实现的。 环境 系统环境 Distributor ID: Ubuntu Description: Ubuntu 18.04.4 LTS Release: 18.04 Codename: bionic Linux version : 5.3.0-46-generic ( buildd@lcy01-amd64-013 ) G...

Python Decorator Closure

"python decorator closure"

前言 在Python中,装饰器是在不改变已有函数的代码的前提下,给函数增加新的功能的一种函数。 装饰器接收一个函数作为参数,返回值也是一个函数。 在Python中,实现装饰器的方式叫做闭包。 环境 系统环境 Distributor ID: Ubuntu Description: Ubuntu 18.04.4 LTS Release: 18.04 Codename: bionic L...

Python Singleton Pattern

"python singleton pattern"

前言 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 注意: 1、单例类只能有一个实例。 2、单例类必须自己创建...

Python Logging Handlers

"python logging handlers"

前言 假设已经知道了logging基本使用 实际工作中,对于日志是使用不仅限于输出那么简单,还要处理日益堆积的日志文件,logging 模块中实现了很多日志处理的方法,可以帮我们实现日志的管理功能。 本文除了logging处理类的基本介绍,还加多了日志文件按时间切分、按大小切分、实现单例的程序demo。 环境 系统环境 Distributor ID: Ubuntu Descripti...

Python Logging Basic Use

"python logging basic use"

前言 logging 模块是 Python 内置的标准模块,用于输出代码日志。 环境 系统环境 Distributor ID: Ubuntu Description: Ubuntu 18.04.4 LTS Release: 18.04 Codename: bionic Linux version : 5.3.0-46-generic ( buildd@lcy01-amd64-...

MySQL left join,right join,inner join diff

"MySQL left join,right join和inner join的区别"

前言 之前被问到mysql中的三种join的区别,一时蒙了。 left join - 左连接 right join - 右连接 inner join - 内连接 经过以下文档说明,简单的概况成一句话:使用左右连接的两张表可以理解成其中一张表的信息明显比另外一张表信息重要得多,使用内连接的两张表可以理解成重要程度区别不大的两张表。 注意:“重要”的标准要对于查询结果的相对而言 环...

MySQL Merge With No Primary Key or unique

"MySQL Merge With No Primary Key or unique"

前言 1.replace into和insert into on duplicate key update,都需要原始数据表具有唯一性索引。 2.合并两张表,最简便还是使用如上语句(要有唯一性索引),如果不想创建唯一性索引,则可以通过存储过程实现。 环境 系统环境 Distributor ID: Ubuntu Description: Ubuntu 18.04.4 LTS Releas...

MySQL explain

"MySQL explain"

前言 explain关键字可以模拟MySQL优化器执行SQL语句,可以很好的分析SQL语句或表结构的性能瓶颈。 使用过explain关键字优化过2,576,177行,1.02 GB (1,093,664,768)数据长度的数据,找到查询的痛点,改动表的字段属性,数据库表索引,表中内容(|-,)查询时间从原来的15.290s到改进之后的2.64s 环境 系统环境 Distributor I...

MySQL ON DUPLICATE KEY UPDATE with PK or UNIQUE

"MySQL ON DUPLICATE KEY UPDATE with PK or UNIQUE"

前言 mysql 并没有merge into的DML(数据操纵语言)的关键字来合并两张表,但是有个on duplicate key update语法(不是标准的sql语法,是mysql 特有的语法)或者replace into可以实现merge into语法。 两种的方法都需要原始数据表具有唯一性索引或者主键,不然插入合并插入新表所有行。 如果你觉得merge有点眼熟,好像merge是m...