- 博客(24)
- 收藏
- 关注
原创 LRU Cache 最近最少使用算法
什么是 LRU CacheLRU Cache 算法是 Least Recently Used,也就是最近最少使用算法。对于一个操作系统来说,我们的缓存是有限的,所以有的时候我们必须要舍弃掉一些 object 来增加当前程序的运行效率。LRU Cache 算法的概念是:当缓存空间满了的时候,将最近最少使用的数据从缓存空间中删除以增加可用的缓存空间来缓存新的数据。这个算法的核心是一个缓存列表,当我...
2019-11-01 11:04:21
475
原创 MVCC介绍
1 什么是 MVCC?MVCC, 即多版本并发控制。MVCC 的实现,是通过保存数据在某个时间点的快照来实现的,也就是说,不管需要执行多长时间,每个事务看到的数据都是一致的。根据事务开始的时间不同,每个事务对同一张表,同一时刻看到的数据可能是不一样的。2 Undo logredo log,它记录了事务操作变化。但是事务有时是需要回滚的,这时,undo log 就发挥了作用。undo log ...
2019-10-28 16:41:44
776
1
原创 Mysql是否需要开启缓存
从 MySQL 4.1 开始,增加了查询缓存(Query Cache,简称 QC)的功能,它会存储 select 语句的文本以及发送到客户端的结果。如果下一次收到一个相同的查询,就会从查询缓存中获得查询结果。关于 QC 的详细定义,可以查询 MySQL 5.7 官方手册那么是不是只要开启查询缓存就能提升查询速度呢?今天就一起探讨这一话题。1 认识 QCQC 需要缓存最新数据结果,因此表数据...
2019-10-28 16:32:32
2627
原创 哪些情况需要考虑分库分表?
使用数据库时,我们经常会聊到分库分表,那么分库分表有哪些方式?什么情况应该考虑分库分表呢?本节就来聊聊这些问题。MySQL 分库分表是指:把 MySQL 数据库物理地拆分到多个实例或者机器上去。从而降低单台 MySQL 实例的负载。那么这里讲的拆分究竟以什么方式实现的呢?这里就先来看看 MySQL 分库分表的拆分方法:1 MySQL 分库分表拆分方法MySQL 分库分表拆分方法分为:垂直拆分...
2019-10-25 15:48:47
1036
原创 mysql分布式事务
比如你在网上买了一本书,可以简化为在订单库增加订单,在库存库减掉这本书的 1 个库存。这里订单库和库存库是在不同的机器上,如果这两步放在两个事务里,增加订单这一步成功了,但是减库存这里失败了。那岂不是就乱了。这里就要引出分布式事务了。什么是分布式事务?1 认识分布式事务分布式事务是指一个大的事务由很多小操作组成,小操作分布在不同的服务器上或者不同的应用程序上。分布式事务需要保证这些小操作要么...
2019-10-24 17:28:25
401
原创 数据指标
在互联网公司,数据是一种非常重要的资源,这在业界已经形成了毋庸置疑的共识,不管老板,产品经理,运营人员都在关注数据。老板也经常会问最近产品的数据情况怎么样啊?怎么这两天产品的下载量突然极速下滑?我们产品用户都有哪些特征啊?等等,老板经常会提出一系列的为什么,而要回答老板的这些问题,必须去关注数据。那我们该怎样去理解数据,数据是怎么来的,有哪些数据,怎么去应用这些数据(都有哪些数据分析方法)。一...
2019-09-25 09:01:14
305
原创 泰坦尼克号乘客获救预测
1. 数据总览读取titannic生存模型,查看数据大致情况和主要特征:import reimport numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.filterwarnings('ignore')%matplo...
2019-09-17 20:19:42
1217
转载 梯度提升树(GBDT)原理和超参数调节小结
GBDT原理GBDT超参数调节以上都出自刘建平老师的博客,刘老师的博客对机器学习算法的总结很细致全面,值得学习。
2019-09-04 20:41:23
2267
原创 Anaconda环境移植方法总结
一.生成yourfilename.yml文件的方式conda env list 查找所有环境conda activate yourenvname yourenvname为要导出的环境名称conda env export --file name.yml 导出环境到yml文件,文件名为 name.yml(name名字自己随便取,保存路径为当前路径)将name.yml文件复制到目...
2019-07-28 20:28:17
4724
1
原创 优化mysql数据库查询效率的方法
1、储存引擎选择:如果数据表需要事务处理,应该考虑使用InnoDB(默认),因为它完全符合ACID 特性;如果不需要事务处理,使用MyISAM是比较明智的。(在创建表时指定engine就行)2、分表分库,主从。(可以参考这篇文章)3、对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 orderby 涉及的列上建立索引。4、应尽量避免在 where 子句中对字段进行 null ...
2019-07-12 21:02:36
139
原创 Ipython中的魔法命令总结
IPython中的魔法命令有很多魔法命令,能让我们更好的使用IPython,同时这魔法命令也能在JupyterNotebook中使用,因为后者是以前者为内核的。命令说明%quickref快速导引%magicMagic Functions 详细说明%fun?获取具体帮助%lsmagic列出所有可⽤用 Magic Functionsobj?, ob...
2019-07-12 20:46:12
707
转载 python 中的内存管理和垃圾回收机制
内存管理机制:引用计数、垃圾回收、内存池。引用计数:引用计数是一种非常高效的内存管理手段, 当一个 Python 对象被引用时其引用计数增加1, 当其不再被一个变量引用时则计数减 1, 当引用计数等于0时对象被删除。垃圾回收 :引用计数引用计数也是一种垃圾收集机制,而且也是一种最直观,最简单的垃圾收集技术。当 Python 的某个对象的引用计数降为 0 时,说明没有任何引用指向该...
2019-07-11 15:24:00
211
转载 Python Async/Await的使用
今天遇到一个使用Python标准库当中asyncio中async/await的程序,之前没有太了解,在网上查了一下,发现一篇介绍的很细致的博文,在这里[分享并mark一下]。(https://zhuanlan.zhihu.com/p/27258289)...
2019-07-10 21:15:41
4479
原创 python中的堆栈帧
Python 堆栈帧基本上就是对 x86 的模拟,⽤指针对应 BP、SP、IP 寄存器。堆栈帧成员包括函数执行所需的名字空间、调⽤堆栈链表、异常状态等。BP是基指针, SP是栈指针, IP是指令指针. 通常BP用来保存使用局部变量的地址,SP用来指向当前的栈,IP用来指示当前运行程序的当前指针。typedef struct _frame { PyObject_VAR_HEAD struct ...
2019-07-10 10:59:48
1466
转载 用conda创建python虚拟环境
1、首先在所在系统中安装Anaconda。可以打开命令行输入conda -V检验是否安装以及当前conda的版本。2、conda常用的命令。1)conda list 查看安装了哪些包。2)conda env list 或 conda info -e 查看当前存在哪些虚拟环境3)conda update conda 检查更新当前conda3、创建python虚拟环境。 使用 con...
2019-07-10 10:37:32
195
原创 python输出警告信息
使用warning.warn()函数,可以输出截稿信息:import warnings def func(x, y, logfile=None, debug=False): if logfile is not None: warnings.warn('logfile argument deprecated', DeprecationWarning)使用warning.si...
2019-07-09 21:57:59
4528
原创 对python代码进行性能测试
1,使用装饰器:from functools import wrapsimport timedef timethis(func): @wraps(func) def wrapper(*args,**kwargs): start = time.perf_counter() r = func(*args,**kwargs) end ...
2019-07-09 21:34:13
1441
原创 python提高代码运行效率的小技巧
.将全局范围的代码放入函数中,使用函数大概能带来15%~30%的性能提升,这种速度差异是由于局部变量和全局变量的实现方式(使用局部变量要更快些);尽量去掉属性访问,每一次使用(.)操作符来访问属性时会带来额外的开销,它会触发特定的方法,比如__getattribute__()和__getattr__(),这些方法会进行字典操作操作;import math def compute_...
2019-07-09 21:28:34
283
原创 Selenium和PhantomJS的使用总结
1. SeleniumSelenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器)。Selenium 可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生。...
2019-07-07 22:09:16
198
原创 xpath的总结
1. XPath语法XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上1.1 节点的关系父(Parent)子(Children)同胞(Sibling)先辈(Ancestor)后代(Descendan...
2019-07-06 21:23:40
141
原创 python中input和eval的区别
input和evalPython中 input() 函数接受一个标准输入数据,返回为 string 类型,接收一个prompt参数,表示要输入的提示信息;eval() 函数把输入的字符串表达式当Python语句来执行,并返回该语句执行结果,该方法还能使字符串本身的引号去掉,保留字符的原本属性,可接收以下3个参数:expression – 表达式,globals – 变量作用域,全局命名空间...
2019-07-03 21:48:12
4240
原创 通过某字段将记录分组
from operator import itemgetterfrom itertools import groupbyrows = [ {'address': '5412 N CLARK', 'date': '07/01/2012'}, {'address': '5148 N CLARK', 'date': '07/04/2012'}, {'address': '58...
2019-07-02 22:02:43
121
原创 统计序列中出现次数最多的元素
当我们遇到一大段文本该如何获取文本中热词,首先我先对文本进行序列化(序列化过程就不说了),然后对其进行统计:常规思路words = [ 'look','into','my','eyes','look','into','my','eyes','the', 'eyes','the','eyes','the','eyes','not','around','the','eyes', ...
2019-07-01 22:38:21
644
原创 正则表达式总结
1. 正则表达式的初步介绍正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是用来匹配字符串非常强大的工具,在其他编程语言中同样有正则表达式的概念,Python同样不例外,利用了正则表达式,我们想要从返回的页面内容提取出我们想要的内容就非常简单了规则:...
2019-06-29 22:38:02
73
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人