分类目录归档:云计算

MySQL的读写分离


MySQL的读写分离

MySQL读写分离是一种数据库架构优化方案,核心思想是将数据库的写操作(INSERT/UPDATE/DELETE)读操作(SELECT) 分配到不同的数据库实例上处理,以提高系统性能和稳定性。

一、为什么需要读写分离?

在多数业务场景中,读操作的频率远高于写操作(例如电商商品浏览、新闻查看等)。如果读写操作都依赖单一数据库,会导致:

  • 写操作(如订单提交)占用数据库资源,影响读操作响应速度;
  • 单库负载过高,难以应对高并发请求;
  • 单点故障风险高,一旦数据库宕机,整个系统不可用。

读写分离通过"主库处理写,从库处理读"的方式,解决上述问题:

  • 分担主库压力,提...

Read more

MySQL六十六问


MySQL六十六问

1.什么是内连接、外连接、交叉连接、笛卡尔积呢?

  • 内连接(inner join):取得两张表中满足存在连接匹配关系的记录。
  • 外连接(outer join):不只取得两张表中满足存在连接匹配关系的记录,还包括某张表(或两张表)中不满足匹配关系的记录。
  • 交叉连接(cross join):显示两张表所有记录一一对应,没有匹配关系进行筛选,它是笛卡尔积在SQL中的实现,如果A表有m行,B表有n行,那么A和B交叉连接的结果就有m*n行。
  • 笛卡尔积:是数学中的一个概念,例如集合A={a,b},集合B={1,2,3},那么A✖️B={<a,o>,<a,1>...

Read more

什么是分库分表?


1.什么是分库分表?

简单的说就是,通过某种特定的条件,将我们存放在共一个数据库中的数据分散存放到多个数据库(主机)上,以达到分散单台设备负载的效果。

分库:就是一个数据库分成多个数据库,部署到不同机器。

图片

分表:就是一个数据库表分成多个表。

图片

2.为什么需要分库分表?

2.1为什么需要分库呢?

如果业务量剧增,数据库可能会出现性能瓶颈,这时候我们就需要考虑拆分数据库。从这几方面来看:

磁盘存储

  • 业务量剧增,MySQL单机磁盘容量会撑爆,拆成多个数据库,磁盘使用率大大降低。

并发连接支撑

  • 我们知道数据库连接是有限的。在高并发的场景下,大量请求访问数据库,MySQL单机是扛不住的...

Read more

MySQL 锁


一、锁的核心作用:解决并发冲突

锁是计算机协调多个进程或线程并发访问某一资源的机制。

在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。

MySQL 的锁机制是保障数据一致性和并发性能的核心工具。它通过不同粒度、不同模式的锁,协调多个事务对数据的访问,避免脏读、幻读、丢失更新等问题。

数据库是多用户共享的资源,当多个事务(用户操作)同时访问同一数据时,可能引发:

    ...

Read more

Ubuntu 安装 NFS


Ubuntu 安装 NFS 共享目录详细步骤

NFS (Network File System) 是一种允许不同主机之间通过网络共享文件系统的协议。以下是详细的在 Ubuntu 上安装和配置 NFS 共享目录的方法,并附带示例。

1. 安装 NFS 服务

首先,在你的 Ubuntu 服务器上安装 NFS 服务器软件包。

sudo apt update
sudo apt install -y nfs-kernel-server

2. 配置 NFS 服务

创建一个目录作为共享目录。例如,我们使用 /mnt/nfs_share 作为共享目录。

sudo mkdir -p /mnt/nfs_...

Read more

使用Nginx+uWSGI部署Django项目


使用Nginx+uWSGI部署Django项目

Django是一个开源的Web应用框架,使用Python语言编写,主要用于搭建Web项目。本教程介绍如何在Linux服务器中使用Nginx+uWSGI部署Django项目。

步骤一:安装或核对Python版本

which python3 
ll /usr/bin/python*

回显信息类似如下所示。

user@localhost:~$ which python3 
/usr/bin/python3
user@localhost:~$ ll /usr/bin/python*
-rwxr-xr-x 1 root root 366203...

Read more

Ubuntu22.04部署-LNMP


步骤一:关闭防火墙

1.运行以下命令,检查防火墙当前状态。

sudo ufw status
  • 如果防火墙状态为Status: inactive,则表示防火墙为关闭状态。
  • 如果防火墙状态为Status: active,则表示防火墙为开启状态。

2.可选:关闭防火墙。

如果您的防火墙为开启状态,需要运行以下命令,关闭防火墙并关闭开机自启动防火墙。

sudo ufw disable

说明

如果您想重新开启防火墙并开启开机自启动防火墙,请运行sudo ufw enable命令。

步骤二:安装Nginx

1.运行以下命令,更新Ubuntu系统内的软件包。

sudo apt update
...

Read more

集群与分布式


网站架构

高并发集群

高可用集群

Read more

LAMP搭建WordPress


安装WordPress

WordPress是使用PHP语言开发的博客平台;

WordPress功能强大,插件众多,易于扩充功能。安装使用都非常方便。

使用 phpmyadmin 在 LAMP 里为 WordPress 创建并配置数据库

为了简单起见,可以直接去账号页新建一个用户来,同时创建同名的 database:

image-20240804184436754

用户名 wordpress,密码自由设定:

image-20240804184509352

点击右下角执行按钮之后,自动进入修改权限页面,不用细看,全部选择后,点击右下角执行:

image-20240804184545324

最后得到的数据库用户列表应该是这样的

image-20240804184632334

下载 WordPress

使用“百度”搜索到 WordPress 官网,下载安装文件:

http...

Read more

Apache基础入门


介绍

在这里插入图片描述

Apache是一个开源的Web服务器软件,全称为Apache HTTP Server,由Apache软件基金会开发和维护。Apache是世界上使用最广泛的一种Web服务器,支持基于HTTP、HTTPS的请求处理,是开发网站和Web应用程序的重要工具。

一、主要特点

  • 开源免费:阿帕奇服务器以开源的方式发布,任何人都可以免费获取和使用。

  • 跨平台:可在多个操作系统上运行,包括Windows、Linux、UNIX等,为不同平台的用户提供了便利。

  • 功能强大:采用模块化设计,用户可以根据需要选择和配置不同的模块,以满足特定的需求。同时,它支持多种编程语言,为开发者提供了丰富的...

Read more