自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 聚集索引和非聚集索引

IO操作的效率很低,在大量数据存储中,查询时我们不能一下子将所有的数据全部加载到内存中,只能逐节点加载,如果采用平衡二叉树作为索引结构,那么磁盘的IO次数和索引树的高度是相关的,平衡二叉树由于树深度过大而造成IO读写过于频繁,进而导致效率低下。按照聚集索引排列顺序,查询显示一定范围数据的时候,由于数据都是紧密相连,数据库可以从更少的数据块中提取数据,节省了大量的IO操作。所有索引都是非聚集索引,所有索引的 B+Tree 的叶子节点存储的都是数据行在 .MYD 文件中的物理地址。索引文件:.MYI 文件。

2025-11-01 21:27:37 998

原创 网络爬虫介绍

一种无状态的(不会存储用户的信息,即本次请求响应和下一次的请求响应是没有关系的,不会发生数据传递),以请求\应答方式运行的协议,它使用可扩展的语义和自描述消息格式,与基于网络的超文本信息系统灵活的互动。在前面爬取'https://www.baidu.com'百度首页代码这个例子里,我们发现爬取的数据并不全,这是因为:请求头中有很多字段,其中user-agent字段是必不可少的,表示客户端的操作系统以及浏览器的信息。爬虫的作用:数据采集、软件测试、抢票、网络安全、web漏洞扫描。

2025-09-26 22:31:24 2368

原创 一些模块及应用

用于和操作系统进行交互,通用操作包括:获取平台信息、对目录的操作、判断操作。

2025-09-17 14:11:16 724

原创 正则(二):进阶

(ab)\numP<name>)P=name)search():扫描整个字符串并返回第一个成功匹配的对象,如果匹配失败,则返回Nonefindall():以列表形式返回整个字符串中所有匹配到的字符串,不需要通过group()提取sub():将匹配到的数据进行替换。sub(pattern,repl,string,count) pattern:正则表达式(代表需要被替换的,也就是字符串里面的旧内容);repl:新内容;string:字符串;count:指定替换次数。

2025-09-08 14:35:55 734

原创 正则(一):基础与使用

记录文本规则的代码,需要导入re模块。语法比较复杂,可读性较差,但通用性很强,适用于多种编程语言。步骤:导入re模块;使用match方法进行匹配操作,re.match()能匹配出以×××开头的字符串,如果起始位置没有匹配成功,返回None;如果上一步数据匹配成功,使用group()提取数据。match是从开始位置匹配,整体进行匹配,匹配不到就没有。

2025-09-07 12:32:31 849

原创 线程、进程、协程

线程是cpu调度的基本单位,每一个进程至少都会有一个线程,这个线程通常就是我们所说的主线程。进程是操作系统进行资源分配的基本单位,每打开一个程序至少就会有一个进程。一个进程默认有一个线程,进程里面可以创建多个线程,线程是依附在进程里面的,没有进程就没有线程。

2025-09-06 10:20:19 2029

原创 迭代器、生成器

可迭代对象Iterable:可以用for...in...这类语句遍历读取数据的对象称之为可迭代对象,遍历是依次从对象中把一个个元素取出来的过程。可迭代对象的条件:对象实现了__iter__()方法;__iter__()方法返回了迭代器对象。isinstance():判断一个对象是否是可迭代对象或者是一个已知的数据类型。迭代器是一个可以记住遍历位置的对象,迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束,迭代器只能往前不会退后。

2025-09-03 20:26:32 804

原创 文件读写操作

open():创建一个file对象,默认是以只读模式打开read(n):n表示从文件中读取的数据的长度,没有传n值就默认一次性读取文件的所有内容write():将指定内容写入文件close():关闭文件文件名.name:返回要打开的文件的文件名,可以包含文件的具体路径文件名.mode:返回文件的访问模式文件名.closed:检测文件是否关闭,关闭就返回True。

2025-08-29 11:20:52 427

原创 面向对象编程(下):单例模式与魔法方法

是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例模式就能派上用场。优点是可以节省内存空间,减少了不必要的资源浪费;弊端是多线程访问的时候容易引发线程安全的问题。有四种实现方式:通过@classmethod;通过装饰器实现;通过重写__new__()实现(重点);通过导入模块实现。通过重写__new__()实现通过导入模块实现,在同一个模块中调用两次或者在不同的模块中分别调用,得到的内存地址都是一样的,所以模块是天然的单例模式。

2025-08-26 21:48:16 525

原创 面向对象编程(中):封装、继承、多态

面向对象的三大特性:封装、继承、多态。

2025-08-24 23:20:39 2225

原创 面向对象编程(上):基础

面向过程是先分析出解决问题的步骤,再把步骤拆成一个个方法,是没有对象去调用的,通过一个个方法的执行解决问题。(需要实现一个功能的时候,重要的是过程,分析出一个个步骤,并把一个个步骤用一个个函数去实现,再依次去调用一个个函数即可,每一个步骤都需要自己亲力亲为)面向对象是将编程当成一个事物(对象),对外界来说,事物是直接使用的,不用去管内部的情况,而编程就是设置事物能做什么事情。(需要实现一个功能的时候,看重的是谁去帮我做这件事情。

2025-08-18 22:13:09 840 1

原创 闭包、装饰器

在嵌套函数(嵌套定义)的前提下,内部函数使用了外部函数的局部变量,而且外部函数的返回值是内部函数的函数名,我们就把使用了外部函数变量的内部函数称为闭包。每次开启内函数都在使用同一份闭包变量。使用闭包的过程中,一旦外函数被调用一次,返回了内函数的地址,虽然每次调用内函数会开启一个函数,但执行后就会消亡。

2025-08-16 10:55:42 524

原创 异常、模块与包

首先创建一个Exception('××')对象,××是异常提示信息,然后用raise抛出这个异常对象。并没有打印出哈哈哈,因为抛出异常后代码不能继续往下执行了raise Exception("抛出一个异常")print("哈哈哈")funa()"""funa()raise Exception("抛出一个异常")Exception: 抛出一个异常"""用户输入密码,判断输入的长度是否大于等于6,如果输入的长度不足6位,就报错,即抛出自定义异常,并捕获该异常。

2025-08-12 22:26:16 1194

原创 函数的各类应用

在一个函数里面定义另一个函数print("晚上在学习")print("python基础")course()study()"""晚上在学习python基础"""

2025-08-09 10:35:29 590

原创 深、浅拷贝

变量li和li2指向同一个列表,等于完全共享资源。

2025-08-03 11:47:03 324 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除