项目背景 为了节约成本,我的阿里云硬盘 只配了最低档 20GiB ,由于想在云服上再搭一些服务,所以需要降一些硬盘利用率,清理一下云服务器上的文件。
项目背景 为了节约成本,我的阿里云硬盘 只配了最低档 20GiB ,由于想在云服上再搭一些服务,所以需要降一些硬盘利用率,清理一下云服务器上的文件。
语法区别 3. 关于日期、时间的提取 将 timestamp 类型的数据,把小时、分钟等提取出来。 --mysql SELECT hour(time) AS timeHour FROM cart WHERE ......; --PostgreSQL (holo) 方法一 SELECT DATE_PART('hour', time) as timeHour FROM cart WHERE ......; --PostgreSQL (holo) 方法二 SELECT EXTRACT(hour FROM time) AS…
范式概念 在关系型数据库中,设计数据库时要考虑遵循一定的规则,这种规则就是范式。 实际上,数据库一共有六种范式,但一般设计数据库的时候,只需要遵守到3NF(第三范式)即可。 1NF 2NF 3NF BCNF 4NF 5NF 第一范式 1NF 第一范式主要强调原子性,即数据库的每一列都是一个不可再分割的基本数据项。 例:下表不满足第一范式 学号 姓名 家庭电话及住址 23333 马猴烧酒 166 xxxx xxxx,唐辛子星 修改后即可满足第一范式 学号 姓名 家庭电话 住址 23333 马猴烧酒 166 xxxx …
事务 事务的概念 事务就是一组原子性的SQL查询,或者说是一个独立的工作单元。如果数据库引擎能够成功地对数据库应用该组查询的全部语句,那么久执行该组查询。如果其中有任何一条语句因为崩溃或者其他原因无法执行,那么所有的语句都将不会执行。 也就是说,事务内的语句,要么全部执行成功,要么全部执行失败。 经典例子:“银行应用” 假设要从用户A的银行卡账户转到用户B的银行卡账户200元钱,应该怎么做? 应该至少需要三个步骤: 1. 检查用户A的账户余额是否高于200元? 1. 从用户A的银行卡账户中减去200元。 1. 在用…
并发控制 无论何时,只要有多个查询需要在同一时刻修改数据,都会产生并发控制问题。 如果一个用户正在读取一张表,而另一位用户正在试图删除这张表中第25行,会产生什么结果?结论是不确定的,读取的用户可能会因此报错退出,也有可能读到了信息不一致的表。 如何解决这类问题呢? 在处理并发读或者写时,可以通过实现一个由两种类型的锁组成的锁系统来解决问题。这两种类型的锁通常被称为 共享锁(shared lock) 和 排他锁(exclusive lock),也叫 读锁(read lock) 和 写锁(write lock) 读锁…
MySQL逻辑架构 第一层:服务不是MySQL独有的,大多数基于网络和客户端/服务器的工具或者服务都有类似的架构。每个客户端连接都会在服务器进程中拥有一个线程。 第二层:大多数MySQL核心服务功能都在这一层,包括查询解析、分析、优化、缓存以及所有的内置函数(例如时间、日期、数学和加密函数等),所有跨存储引擎的功能都在这一层实现(例如存储过程、触发器、视图等)。 第三层:存储引擎。其负责MYSQL中数据的存储和提取。服务器通过API与存储引擎进行通信。存储引擎不会去解析SQL,不同存储引擎之间也不会相互通信,而只是…
安装MySQL数据库 MySQL官方链接:https://dev.mysql.com/downloads/mysql/ Debian:sudo apt install mysql-5.7 安装过程:略 Go 安装MySQL驱动 go get "github.com/go-sql-driver/mysql" 在项目中使用MySQL 在go mod模式下,还需要在项目中引用mysql模块 go.mod文件 module MonaGinWeb go 1.15 require ( github.com/gin-gonic/…