01 2024 档案
发表于 2024-01-29 21:47阅读:23评论:0推荐:0
摘要:【一】登陆 mysql -uroot -p123456 【二】服务启动和停止 【1】Windows (1)方式一 计算机 右击管理 服务【右击计算机管理 中间服务与应用程序 双击服务 下面点击标准 即可查看每个软件是否启动服务的状态(可以直接输入要查询的软件名称,再回车键即可)。】 (2)管理员身份
阅读全文 »
发表于 2024-01-29 21:47阅读:29评论:0推荐:0
摘要:【面试题】数据库的三大范式 参考博客:数据库的范式设计 【什么是范式】 范式就是我们在设置数据库的表时,一些共同需要遵守的规范 掌握这些设计时的范式,可以让我们在项目之初,设计库的表结构更加合理和优雅 【三大范式之间的关系】 三大范式之间,是逐级递进的关系,也就是说后一个范式是在前一个范式的基础上推
阅读全文 »
发表于 2024-01-29 21:47阅读:65评论:0推荐:0
摘要:【一】什么是锁机制 我们可以通过一个很简单的比喻来理解事务的锁机制。 比如同一个办公室的同事们 都想使用打印机打印文件 如果不加以控制 可能出现两个人同时打印不同的内容在一个文件里 就会引起内容混乱。 于是,我们就引入了锁的概念 当有并发的多个事务同时操作同一份数据时 只有“抢到”了锁的事务 才能真
阅读全文 »
发表于 2024-01-29 21:47阅读:55评论:0推荐:0
摘要:【一】数据库读现象的本质 是数据库在高并发场景下 多个同时执行的事务带来的影响。 【二】数据库三大读现象 在数据库中,不同的事务隔离级别可能会导致脏读(Dirty Read)、不可重复读(Non-repeatable Read)和幻读(Phantom Read)等问题的出现。 【1】脏读 (1)概述
阅读全文 »
发表于 2024-01-29 21:46阅读:39评论:0推荐:0
摘要:【一】索引的概念 索引(在MySQL中也叫做“键(key)”)是存储引擎用于快速找到记录的一种数据结构,这也是索引最基本的功能。 索引对于良好的性能非常关键。 数据量越大时,索引对性能的影响也越重要,好的索引可以将查询性能提高几个数量级。 在数据量较小且负载较低时,不恰当的索引对性能的影响可能还不明
阅读全文 »
发表于 2024-01-29 21:45阅读:14评论:0推荐:0
摘要:【零】各种语言中的流程控制语句 【1】Python if 条件: 子代码 elif 条件: 子代码 else: 子代码 【2】JavaScript if(条件){ 子代码 }else if(条件){ 子代码 }else{ 子代码 } 【3】MySQL if 语句 if 条件 then 子代码 els
阅读全文 »
发表于 2024-01-29 21:45阅读:11评论:0推荐:0
摘要:【一】什么是函数 跟存储过程是有区别的,存储过程是自定义函数,函数就类似于内置函数 注意与存储过程的区别,mysql内置的函数只能在sql语句中使用! 【二】字符串函数 【0】介绍 CONCAT(str1, str2, ...): 将多个字符串连接成一个字符串。 SUBSTRING(str, sta
阅读全文 »
发表于 2024-01-29 21:45阅读:60评论:0推荐:0
摘要:【一】什么是存储过程 存储过程就类似于Python中的自定义函数 内部包含了一系列可以执行的SQL语句,存储过程存储在MySQL服务端中,可以通过调用存储过程触发内部的SQL语句 存储过程是在关系型数据库中存储的一组预定义的SQL语句集合,可以接收参数并返回结果。 它们被封装在数据库服务器中,并由应
阅读全文 »
发表于 2024-01-29 21:45阅读:35评论:0推荐:0
摘要:【一】什么是事务 开启一个事务可以包含多条语句,这些语句要么同时成功,要么都不成功 事务是指一系列相关操作的集合,这些操作被视为一个不可分割的工作单元。 事务的目标是确保在多个操作中的每一个都要么全部成功执行,要么全部失败回滚。 即事务的原子性 【二】事务的四大特性(ACID) 【1】原子性(Ato
阅读全文 »
发表于 2024-01-29 21:44阅读:836评论:0推荐:0
摘要:【一】触发器介绍 【1】什么是触发器 在满足对表数据进行增删改的情况下,自动触发的功能,称为触发器 触发器是数据库管理系统中的一个概念,它是一种在数据库中定义的特殊对象,用于在满足特定条件时触发自动化的操作或逻辑。 触发器主要用于监视数据库表的增删改操作,并在满足指定条件时触发相关的响应行为。 触发
阅读全文 »
发表于 2024-01-29 21:44阅读:65评论:0推荐:0
摘要:【一】视图介绍 【1】什么是视图 视图就是通过查询得到一张虚拟表,然后保存下来,下次可以直接使用 视图也是一张表 在计算机科学中,视图(View)是一种虚拟表,其内容是一个或多个基本表的查询结果。 视图基于数据库中的数据,通过定义查询语句来构建,并在需要时动态地计算数据。 与基本表不同,视图不存储实
阅读全文 »
发表于 2024-01-29 21:44阅读:38评论:0推荐:0
摘要:【一】Python操作数据库简介 【1】什么是DB-API Python标准数据库规范为 DB-API, DB-API定义了一系列必须的对象和数据库操作方式,以便为各种数据库系统和数据库访问程序提供一致的访问接口。 【2】数据库操作模块 开发人员将接口封装成不同的数据库操作模块,不同的数据库需要不同
阅读全文 »
发表于 2024-01-29 21:44阅读:196评论:0推荐:0
摘要:【一】Tabby介绍 与Bash相同的行编辑(来自GNU Readline库版本8.1)。 会话之间的历史记录持久性。 上下文相关完成; 可执行文件(和别名)。 目录命令。 环境变量。 上下文相关的彩色输入文本。 来自历史记录和完成的自动建议。 新的键盘快捷键; 交互式完成列表 (+)。CtrlSp
阅读全文 »
发表于 2024-01-29 21:43阅读:1598评论:0推荐:1
摘要:【一】介绍 【1】软件介绍 PDManer元数建模,是一款多操作系统开源免费的桌面版关系数据库模型建模工具,相对于PowerDesigner,他具备界面简洁美观,操作简单,上手容易等特点。 支持Windows,Mac,Linux等操作系统,也能够支持国产操作系统,能够支持的数据库如下: MySQL,
阅读全文 »
发表于 2024-01-29 21:43阅读:1128评论:0推荐:0
摘要:【一】Navicat介绍 Navicat可以充当很多数据库软件的客户端 提供了图形化界面能够让我们更加快速的操作数据库 【1】介绍 Navicat 是一款功能强大且广泛使用的数据库管理工具,可用于连接和管理多种数据库系统,如 MySQL、MariaDB、Oracle、PostgreSQL 等。 本文
阅读全文 »
发表于 2024-01-29 21:43阅读:29评论:0推荐:0
摘要:【一】SQL文件 /* Navicat Premium Data Transfer Source Server : localhost Source Server Type : MySQL Source Server Version : 50624 Source Host : localhost S
阅读全文 »
发表于 2024-01-29 21:42阅读:23评论:0推荐:0
摘要:【零】引入 多表查询的思路总共就两种 【1】子查询 就相当于是我们日常生活中解决问题的方式(一步步解决) 将一条SQL语句的查询结果加括号当做另外一条SQL语句的查询条件 eg:以昨天的员工表和部门表为例 查询jason所在的部门名称 子查询的步骤 先查dream所在的部门编号 根据部门编号去部门表
阅读全文 »
发表于 2024-01-29 21:42阅读:150评论:0推荐:0
摘要:【一】查询语法 【1】语法 select */字段名 from 表名 where 筛选条件; 【2】执行顺序 from where select 【3】模版 虽然执行顺序和书写顺序不一致,但是可以按照书写顺序写SQL语句 # 先用 * 占位,再去补全完整的 SQL 语句 select * from
阅读全文 »
发表于 2024-01-29 21:42阅读:208评论:0推荐:0
摘要:【一】什么是约束条件 约束条件:限制表中的数据,保证添加到数据表中的数据准确和可靠性!凡是不符合约束的数据,插入时就会失败! 约束条件在创建表时可以使用, 也可以修改表的时候添加约束条件 【二】概览 非空约束(not null) 唯一性约束(unique) 组合使用 not null 和 uniqu
阅读全文 »
发表于 2024-01-29 21:41阅读:42评论:0推荐:0
摘要:【一】创建表的完整语法 create table 表名( 字段名1 类型(宽度) 约束条件, 字段名2 类型(宽度) 约束条件, 字段名3 类型(宽度) 约束条件, ); 同一张表中字段名不能重复 宽度和约束条件是可选的(可写可不写) 约束条件可以写多个 【二】基础语法 【1】字段名和字段类型是必须
阅读全文 »
发表于 2024-01-29 21:41阅读:48评论:0推荐:0
摘要:【一】什么是存储引擎 日常生活中文件格式有很多,并且针对不同的文件格式会有对应不同的存储方式和处理机制 针对不同的数据应该有对应的不同的处理机制 存储引擎就是不同的处理机制 【二】MySQL主要的存储引擎 【1】Innodb 是MySQL5.5版本之后的默认存储引擎 支持事务/行锁/外键 【2】my
阅读全文 »
发表于 2024-01-29 21:41阅读:90评论:0推荐:0
摘要:【一】针对库的增删改查(文件夹) 【1】创建数据库 (1)语法 在磁盘上创建一个存储数据表的文件夹。 create database [if not exists] 数据库名 [character set 编码字符集]; 注意:mysql中的编码字符集中utf-8,要换成utf8mb4。SQL语句中
阅读全文 »
发表于 2024-01-29 21:41阅读:18评论:0推荐:0
摘要:【一】引入 前面的学习中我们提到,mysql是关系型数据库, 所以我们要操作mysql就需要使用SQL(结构化查询语言)。 【二】SQL规范 在数据库管理系统中,SQL语句关键字不区分大小写(但建议用大写) ,参数区分大小写。 建议命令大写,数据库名、数据表名、字段名统一小写,如数据库名、数据表名、
阅读全文 »
发表于 2024-01-29 21:40阅读:84评论:0推荐:0
摘要:【一】各种服务器的端口 MySQL :3306 Redis : 6379 MongoDB : 27017 Django : 8000 flask : 5000 【二】MySQL数据库介绍 MySQL是一个开源免费的关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公
阅读全文 »
发表于 2024-01-29 21:40阅读:20评论:0推荐:0
摘要:【一】SQL语句的由来 【1】socket通信 任何基于网络通信的应用程序底层用的都是scoket 服务端 基于socket通信 收发消息 客户端 基于socket通信 收发消息 【2】SQL语句的由来 为了使 MySQL 不仅能支持 MySQL 自己的客户端应用程序,还能支持其他编程语言 MySQ
阅读全文 »
发表于 2024-01-29 21:39阅读:36评论:0推荐:0
摘要:【一】存储数据的演变过程 【1】文件存储 在早期,随意地存放到一个文件中、数据格式也是千差万别的,完全取决于个人 【2】软件开发目录规范 (1)概要 限制了存储数据的具体位置 建立专门的文件夹存储数据 (2)软件开发目录规范 bin:主要存放主程序文件,例如main.py; conf:主要存放配置文
阅读全文 »
发表于 2024-01-23 14:34阅读:28评论:0推荐:0
摘要:【7.0】网络并发总复习解释版 网络编程部分 【一】软件开发架构 【1】什么是CS架构 CS架构即 客户端/服务端架构,如APP应用 【2】什么是BS架构 BS架构即 浏览器/服务端架构,如网页的网站 【3】二者相比的优缺点 (1)优点 CS架构 服务器运行数据载荷轻 数据的储存管理较为透明 BS架
阅读全文 »
发表于 2024-01-23 14:34阅读:23评论:0推荐:0
摘要:【6.0】网络并发总复习 网络编程部分 【一】软件开发架构 【二】互联网协议 【1】OSI七层 【2】五层协议 【3】以太网协议 【4】IP协议 【5】广播风暴 【6】TCP/UDP 【三】三次握手,四次挥手(****) 【四】socket协议 【五】TCP粘包问题(定值固定长度报头) 【六】UDP
阅读全文 »
发表于 2024-01-23 14:31阅读:17评论:0推荐:0
摘要:【一】多进程和多线程 import os.path import time from multiprocessing import Process from threading import Thread import requests from lxml import etree from fak
阅读全文 »
发表于 2024-01-23 14:30阅读:26评论:0推荐:0
摘要:【零】IO模型简介 我们研究的 IO 都是基于网络 IO 的 Stevens在文章中一共比较了五种IO Model: blocking IO nonblocking IO IO multiplexing signal driven IO (忽略) asynchronous IO 由signal dr
阅读全文 »
发表于 2024-01-23 14:29阅读:23评论:0推荐:0
摘要:基于 async 和 await 关键字的协程可以实现异步编程,这也是目前 Python 异步相关的主流技术。在这里我们主要介绍一下实现异步的模块:asyncio 模块 【一】asyncio 模块 asyncio 模块是 Python 中实现异步的一个模块,该模块在 Python3.4 的时候发布
阅读全文 »
发表于 2024-01-23 14:29阅读:32评论:0推荐:0
摘要:【一】基于单线程来实现并发 【0】并发的本质 本节的主题是基于单线程来实现并发 即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发 为此我们需要先回顾下并发的本质: 切换+保存状态 CPU正在运行一个任务 会在两种情况下切走去执行其他的任务(切换由操作系统强制控制) 一种情况是该任务发生
阅读全文 »
发表于 2024-01-23 14:29阅读:20评论:0推荐:0
摘要:【一】TCP实现并发的效果的原理 每开设一个客户端,就会有一个服务端服务 【1】服务端 from socket import * from threading import Thread def server_create(IP, PORT): server = socket() server.bi
阅读全文 »
发表于 2024-01-23 14:29阅读:26评论:0推荐:0
摘要:【零】队列queue介绍 queue队列 : 使用import queue,用法与进程Queue一样 queue is especially useful in threaded programming when information must be exchanged safely betwee
阅读全文 »
发表于 2024-01-23 14:28阅读:28评论:0推荐:0
摘要:【一】信号量(了解) 信号量Semahpore(同线程一样) 【1】引入 互斥锁 同时只允许一个线程更改数据,而Semaphore是同时允许一定数量的线程更改数据 比如厕所有3个坑,那最多只允许3个人上厕所,后面的人只能等里面有人出来了才能再进去 如果指定信号量为3,那么来一个人获得一把锁,计数加1
阅读全文 »
发表于 2024-01-23 14:28阅读:45评论:0推荐:0
摘要:【一】死锁 【1】介绍 死锁是指两个或多个进程,在执行过程中,因争夺资源而造成了互相等待的一种现象。 即两个或多个进程持有各自的锁并试图获取对方持有的锁,从而导致被阻塞,不能向前执行,最终形成僵局。 在这种情况下,系统资源利用率极低,系统处于一种死循环状态。 【2】示例 from threading
阅读全文 »
发表于 2024-01-23 14:28阅读:28评论:0推荐:0
摘要:【一】GIL全局解释器锁介绍 【1】官方解释 In CPython, the global interpreter lock, or GIL, is a mutex that prevents multiple native threads from executing Python bytecod
阅读全文 »
发表于 2024-01-23 14:27阅读:15评论:0推荐:0
摘要:【一】问题 所有子线程都会进行阻塞操作,导致最后的改变只是改了一次 from threading import Thread import time money = 100 def task(): global money # 模拟获取到车票信息 temp = money # 模拟网络延迟 time
阅读全文 »
发表于 2024-01-23 14:26阅读:16评论:0推荐:0
摘要:【1】主线程死亡,子线程未死亡 主线程结束运行后不会马上结束,而是等待其他非守护子线程结束之后才会结束 如果主线程死亡就代表者主进程也死亡,随之而来的是所有子线程的死亡 from threading import Thread import time def task(name): print(f'
阅读全文 »
发表于 2024-01-23 14:25阅读:29评论:0推荐:0
摘要:【一】threading模块介绍 multiprocess模块的完全模仿了threading模块的接口 二者在使用层面,有很大的相似性,因而不再详细介绍 官网链接:https://docs.python.org/3/library/threading.html?highlight=threading
阅读全文 »
发表于 2024-01-23 14:25阅读:19评论:0推荐:0
摘要:【一】什么是线程 在传统操作系统中,每个进程有一个地址空间,而且默认就有一个控制线程 线程顾名思义,就是一条流水线工作的过程 一条流水线必须属于一个车间,一个车间的工作过程是一个进程 车间负责把资源整合到一起,是一个资源单位,而一个车间内至少有一个流水线 流水线的工作需要电源,电源就相当于cpu 所
阅读全文 »
发表于 2024-01-23 14:24阅读:59评论:0推荐:0
摘要:【一】引入 借助于消息队列,进程可以将消息放入队列中,然后由另一个进程从队列中取出。 这种通信方式是非阻塞的,即发送进程不需要等待接收进程的响应即可继续执行。 multiprocessing模块支持两种形式:队列和管道,这两种方式都是使用消息传递的 进程间通信(IPC)方式二:管道(不推荐使用,了解
阅读全文 »
发表于 2024-01-23 14:24阅读:292评论:0推荐:0
摘要:【一】什么是进程同步(互斥锁) 互斥锁(Mutex)是一种用于多线程编程中控制对共享资源访问的机制。 其作用是保证在同一时刻只有一个线程在访问共享资源,从而避免多个线程同时读写数据造成的问题。 互斥锁的基本原理是在对共享资源进行访问前加锁,使得其他线程无法访问该资源,当访问完成后再解锁,使得其他线程
阅读全文 »
发表于 2024-01-23 14:24阅读:38评论:0推荐:0
摘要:【一】引入 【1】什么是进程间通信(Inter-Process Communication, IPC) 进程间通信(Inter-Process Communication, IPC)是指两个或多个进程之间进行信息交换的过程。 它是一种计算机编程技术,用于在不同进程之间共享数据和资源。 【2】如何实现
阅读全文 »
发表于 2024-01-23 14:23阅读:37评论:0推荐:0
摘要:【一】什么是守护进程 守护进程 (daemon) 是在计算机系统启动时就已经运行,并且一直在后台运行的一类特殊进程。 它们通常不与用户直接交互,也不接受标准输入和输出,而是在后台执行某种任务或提供某种服务。 守护进程往往是由系统管理员手动启动的,它们可以在系统启动时自动启动,一直运行在后台,直到系统
阅读全文 »
发表于 2024-01-23 14:23阅读:57评论:0推荐:0
摘要:【一】引入 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。 子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个 进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进
阅读全文 »
发表于 2024-01-23 14:21阅读:37评论:0推荐:0
摘要:【一】multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大部分情况需要使用多进程。 Python提供了multiprocessing。 multiprocessing模块用来开启子进
阅读全文 »
发表于 2024-01-23 14:21阅读:28评论:0推荐:0
摘要:【一】什么是进程 【1】理论 正在进行的一个过程或者说一个任务。 而负责执行任务则是cpu。 【2】单任务 单核+多道,实现多个进程的并发执行 dream在一个时间段内有很多任务要做: python备课的任务 写书的任务 交女朋友的任务 王者荣耀上分的任务, 但dream同一时刻只能做一个任务(cp
阅读全文 »
发表于 2024-01-23 14:21阅读:33评论:0推荐:0
摘要:【一】开篇介绍 顾名思义,进程即正在执行的一个过程。 进程是对正在运行程序的一个抽象。 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一。 操作系统的其他所有内容都是围绕进程的概念展开的。 所以想要真正了解进程,必须事先了解操作系统 【二】为什么要有
阅读全文 »
发表于 2024-01-16 16:45阅读:121评论:0推荐:0
摘要:【一】引入 socket并不能多并发,只能支持一个用户 socketserver 模块是 Python 中用于创建网络服务器的模块,提供了一种简单而一致的接口。 它是构建网络服务器的框架,处理了创建、维护和关闭连接的许多底层细节 socketserver是socket的再封装。 【二】sockets
阅读全文 »
发表于 2024-01-16 16:45阅读:50评论:0推荐:0
摘要:【一】如何实现验证 【1】思路 在TCP协议中,客户端和服务端之间的连接是通过三次握手过程建立起来的。 在这个过程中,会进行一些简单的验证来确保连接的安全性和合法性。 【2】具体的过程 客户端向服务器发送一个SYN(同步)包,其中包含一个随机生成的序列号seq=x和一个标志位SYN=1。 服务器收到
阅读全文 »
发表于 2024-01-16 16:45阅读:144评论:0推荐:0
摘要:【一】什么是粘包 须知:只有TCP有粘包现象,UDP永远不会粘包 【1】socket收发消息的原理 首先需要掌握一个socket收发消息的原理 发送端可以是一K一K地发送数据,而接收端的应用程序可以两K两K地提走数据,当然也有可能一次提走3K或6K数据,或者一次只提走几个字节的数据 也就是说,应用程
阅读全文 »
发表于 2024-01-16 16:44阅读:72评论:0推荐:0
摘要:【一】Scoket层在哪 还是用图来说话,一目了然。 【二】什么是socket Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。 在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面 对用户来说,一组简单的接口就是全部,让
阅读全文 »
发表于 2024-01-16 16:44阅读:30评论:0推荐:0
摘要:【一】网络通信实现 【1】实现网络通信的四要素 本机的IP地址 子网掩码 网关的IP地址 DNS的IP地址 【2】获取四要素的两种方式 (1)静态获取 即手动配置 (2)动态获取 通过dhcp获取 以太网头 ip头 udp头 dhcp数据包 (1)最前面的”以太网标头”,设置发出方(本机)的MAC地
阅读全文 »
发表于 2024-01-16 16:44阅读:62评论:0推荐:0
摘要:【零】引入 【1】什么是网络编程 网络编程是指通过编程语言在计算机之间建立通信的一种方式。 它是在互联网上进行数据传输的关键组成部分,使计算机能够相互通信、交换信息和共享资源。 网络编程涉及许多不同的技术和协议,包括TCP/IP(传输控制协议/因特网协议),HTTP(超文本传输协议),FTP(文件传
阅读全文 »
发表于 2024-01-16 16:43阅读:246评论:0推荐:0
摘要:【一】引入 C/S和B/S都是互联网中常见的网络结构模型。 【一】什么是C/S模型 C是英文单词“Client”的首字母,即客户端的意思 C/S就是“Client/Server”的缩写,即“客户端/服务器”模式。 例如:拼多多APP、PC上的有道云笔记等等 【二】什么是B/S模型 B是英文单词“Br
阅读全文 »