单机数据库策略

2024-09-02 13:48
文章标签 数据库 策略 单机

本文主要是介绍单机数据库策略,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

单机

单机时代考虑2个问题:速度,存储空间
表格设计的策略:
早期硬盘成本高,速度响应要求不高,尽可能的牺牲时间,减少空间的占用
使用三范式。

  • 第一范式:数据库表格字段不可切分(关系型数据库自然支持)
姓名电话
王翠花66666668,17760769456

将电话继续拆分:为两个字段固话,手机

  • 第二范式:所有的非主键字段必须依赖全部的主键字段(复合主键:多个字段实现主键的功能)
    stu 学生 sub表示科目

在这里插入图片描述
sub_name 只依赖sub_id 而不依赖stu_id,因此需要拆分

  • 第三范式:非主键字段必须 依赖主键字段不能依赖其他非主键字段
    apart 学系
    -在这里插入图片描述
    appart_name 不依赖stu_id,而依赖非主键字段apart_id

总结

如果满足三范式,就不可能出现冗余字段,导致整体数据占用空间变小,但是表格拆分的过多,关联关系复杂,
查询时效率变低–牺牲了时间.节省了空间。
违反了三范式设计可以实现–牺牲空间,节省时间–反范式

集群

无论如何设计表格结构,物理瓶颈总是限制单个服务器,单个硬盘的读写效率200M/s,无论如何设计表格结构,物理瓶颈总是限制单个服务器,单个硬盘的读写效率 200M/S,在想多,单机无法处理,需要分布式集群的引入
在这里插入图片描述

数据库集群

主从复制

在这里插入图片描述
主节点master:
开启一个二进制日志文件log-bin 记录所有的写操作的日志信息,以position记录的操作指针位置
从节点slave:
I/O线程:登录主节点,监听二进制日志文件,通过position的值是否发生更新改变来判断是否需要抓取新的内容
中继日志rey-log:记录了I/O线程抓取的所有内容,以position来记录更新的位置
SQL线程:监听slave节点内部的中继日志,判断是否有更新的写操作需要执行.从而将I/O抓取的所有内容在从节点执行一遍,保持和主节点的同步

linux安装Percona的mysql

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

主从结构的配置

在这里插入图片描述

这篇关于单机数据库策略的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1130130

相关文章

PostgreSQL数据库密码被遗忘时的操作步骤

《PostgreSQL数据库密码被遗忘时的操作步骤》密码遗忘是常见的用户问题,因此提供一种安全的遗忘密码找回机制是十分必要的,:本文主要介绍PostgreSQL数据库密码被遗忘时的操作步骤的相关资... 目录前言一、背景知识二、Windows环境下的解决步骤1. 找到PostgreSQL安装目录2. 修改p

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir

Druid连接池实现自定义数据库密码加解密功能

《Druid连接池实现自定义数据库密码加解密功能》在现代应用开发中,数据安全是至关重要的,本文将介绍如何在​​Druid​​连接池中实现自定义的数据库密码加解密功能,有需要的小伙伴可以参考一下... 目录1. 环境准备2. 密码加密算法的选择3. 自定义 ​​DruidDataSource​​ 的密码解密3

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

在Java中基于Geotools对PostGIS数据库的空间查询实践教程

《在Java中基于Geotools对PostGIS数据库的空间查询实践教程》本文将深入探讨这一实践,从连接配置到复杂空间查询操作,包括点查询、区域范围查询以及空间关系判断等,全方位展示如何在Java环... 目录前言一、相关技术背景介绍1、评价对象AOI2、数据处理流程二、对AOI空间范围查询实践1、空间查

Python+PyQt5实现MySQL数据库备份神器

《Python+PyQt5实现MySQL数据库备份神器》在数据库管理工作中,定期备份是确保数据安全的重要措施,本文将介绍如何使用Python+PyQt5开发一个高颜值,多功能的MySQL数据库备份工具... 目录概述功能特性核心功能矩阵特色功能界面展示主界面设计动态效果演示使用教程环境准备操作流程代码深度解

利用Python实现时间序列动量策略

《利用Python实现时间序列动量策略》时间序列动量策略作为量化交易领域中最为持久且被深入研究的策略类型之一,其核心理念相对简明:对于显示上升趋势的资产建立多头头寸,对于呈现下降趋势的资产建立空头头寸... 目录引言传统策略面临的风险管理挑战波动率调整机制:实现风险标准化策略实施的技术细节波动率调整的战略价

MySQL数据库实现批量表分区完整示例

《MySQL数据库实现批量表分区完整示例》通俗地讲表分区是将一大表,根据条件分割成若干个小表,:本文主要介绍MySQL数据库实现批量表分区的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录一、表分区条件二、常规表和分区表的区别三、表分区的创建四、将既有表转换分区表脚本五、批量转换表为分区