数据库的安装和使用_数据库系统安装教程

数据库的安装和使用_数据库系统安装教程MySQL理论 1. 数据库 数据: 数据就是一种符号,记录人类认为有价值的东西,例如图片、视频、文字、表格等 从计算机角度来看,就是二进制、16进制的文件 数据库的分类: RDBMS:关系型数据库…

MySQL理论

1. 数据库

  1. 数据:
    • 数据就是一种符号,记录人类认为有价值的东西,例如图片、视频、文字、表格等
    • 从计算机角度来看,就是二进制、16进制的文件
  2. 数据库的分类:
    1. RDBMS:关系型数据库管理系统
      • 二维表结构,有清楚的行列结构,提供丰富的查询功能,高一致性,性能较差
      • 适用数据安全要求较高的场景
    2. NOSQL:无结构化存储
      • key volume键值存储或jeon格式,性能较高
      • 适用于性能要求较高,安全性要求不是太高的场景,可配合RDBMS使用
    3. NewSQL:新式的关系型数据库管理系统,就是RDBMS+NOSQL的组合

2. 数据库产品

RDBMS NOSQL NEWSQL
MySQL(Oracle) Redis PinCAP产品: TiDB
Oracle MongoDB Ali使用:PolarDB + OB
MSSQL Memcached Tencent使用:TDSQL
PG ES

3. MySQL版本选用

  1. mysql社区版本类型
    • MR|RC:测试开发版
    • GA:稳定发布版
  2. MySQL:尽量使用双数版
    • 5.6.34 – 5.6.42
      • 5.6.36:2017-3.18 GA
    • 5.7.20 – 5.7.26
      • 5.7.20:2017-9-13 GA
  3. 产品线
    1. MySQL:
      • E:企业版
      • C:社区版
      • 5.0 5.1 5.5 5.6 5.7 8.0 9.0
    2. mariadb:
      • 5.0 5.1 5.5 10.x
    3. percona:和MySQL很相似
      • 5.0 5.1 5.5 5.6 5.7 8.0

4. Oracle MySQL 5.7.26版本二进制部署

系统的准备
#1. 网络配置
ip,hostname,iptables,Selinux

#2. 规划目录
上传软件至:/usr/local
tar xf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
ln -s mysql-5.7.26-linux-glibc2.12-x86_64/ mysql57
mkdir -p /data/mysql/data_3306      #数据路径
mkdir -p /data/mysql/binlog_3306    #binlog日志路径日志章节说明.

#3. 用户创建 
useradd mysql -s /sbin/nologin -M

#4. 授权 
chown -R mysql.mysql /usr/local/mysql57 /data

#5. 环境变量
vim /etc/profile
添加:
echo "export PATH=/usr/local/mysql57/bin:$PATH" >> /etc/profile

source /etc/profile
mysql -V

#6. 卸载残留 安装依赖
yum remove -y mariadb-libs
yum install -y libaio-devel

#7. 初始化数据库
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql57 --datadir=/data/mysql/data_3306

#8. 配置文件
cat > /etc/my.cnf <<EOF
[mysqld]
user=mysql
port=3306
basedir=/usr/local/mysql57
datadir=/data/mysql/data_3306
server_id=6
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
EOF

#9. 加入系统管理
cp /usr/local/mysql57/support-files/mysql.server /etc/init.d/mysqld

chkconfig --add mysqld

代码100分

5. MySQL体系结构

5.1 SQL种类:

  1. DDL:数据定义
  2. DCL:数据控制
  3. DML:数据操作
  4. DQL:数据查询

5.2 MySQL工作模型

  1. CS结构,客户端服务端模型

    1. 服务端程序:mysqld
    2. 客户端程序:
      • mysql
      • mysqldump
      • mysqladmin
  2. 实例:

    • MySQL运行结构
      • mysqld –调用–> master thread –调用–> worker threads
    • MySQL内存区域
      • MySQL启动后会分配一个固定的专用内存区域

    实例 = mysqld + master thread + worker threads + 内存区域

    数据库管理系统 = 实例 + 数据

5.3 MySQL程序模型

  1. 连接层
    • TCP/IP 或 socket 连接方式
    • 验证用户账号密码
    • 连接线程,接收SQL语句,返回执行结果
  2. SQL层
    • 语法检查
    • 权限检测
    • 语义检查,识别SQL语句的类型
    • 解析器预处理,分析执行SQL语句的各种执行方式,生成解析树(执行计划)
    • 优化器,基于执行计划,挑选最小代价的方式
    • 执行器,基于优化器的选择执行SQL语句,发送给引擎进行操作
  3. 存储引擎层
    • 根据SQL层执行结果,落实到磁盘中

5.4 MySQL逻辑结构

  1. 库(database|schema):
    • 库名称
    • 库属性
  2. 表(table)
    • 表名称
    • 表属性
    • 字段(列)
    • 数据行(记录)

5.5 MySQL物理结构

  1. 库:磁盘上的一个目录
  2. 表:使用多个文件存储表的信息
    1. MyISAM引擎:
      • .frm:表结构
      • .MYD:数据行
      • .MYI:索引
    2. InnoDB引擎:
      • frm:表结构
      • ibd:数据行 + 索引

5.6 MySQL的段区页

  1. 段:一个表就是一个段,我们进行数据分配时,MySQL会在表段中至少分配一个区,也就是1M空间
  2. 区:连续的64个默认大小的页构成一个区
  3. 页:MySQL默认最小IO单元为页(默认16k,可调整),由连续的4个OSblock组成
  4. OSblock,xfs格式默认4k,也就是磁盘上连续的8个扇区
  5. 扇区:每个扇区512字节大小

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10432.html

(0)
上一篇 2022-12-27
下一篇 2022-12-27

相关推荐

  • 数据库中间件漫谈_数据中间件

    数据库中间件漫谈_数据中间件1.前言 随着业务的发展,MySQL数据库中的表会越来越多,表中的数据量也会越来越大,相应地,数据操作的开销也会越来越大;另外,无论怎样升级硬件资源,单台服务器的资源(CPU、磁盘、内存、网络IO、…

    2023-02-06
    107
  • Python可变参数详解

    Python可变参数详解在Python编程中,一个函数可以通过接收和处理参数来实现它的功能。函数参数有两种类型,即默认参数和可变参数,在本文中我们将重点解析可变参数。可变参数指在调用函数时,可以传入任意数量的参数,这些参数在函数定义中不需要被明确指定,这个特性使得函数的使用更加灵活。在Python中,可变参数主要有两种类型:*args和**kwargs。

    2024-05-05
    17
  • 优化Python代码执行效率的实用技巧

    优化Python代码执行效率的实用技巧在众多编程语言中,Python被广泛应用。它的简单易用,高效,且具有极强的可读性和可维护性,使它适用于不同大小和类型的项目和领域应用。然而,Python在处理大规模、高性能和高负载的任务时,可能需要优化代码以提高效率和性能。在本文中,将介绍一些实用的技巧,可用于优化Python代码的执行效率。

    2023-12-24
    60
  • 使用Python位或运算符计算数字之间的按位或操作

    使用Python位或运算符计算数字之间的按位或操作位或运算符是计算机语言中常用的运算符之一,它用来对两个数的每个对应位进行逻辑或运算,如果两个对应位中其中一个为1,则结果为1,否则为0。

    2024-01-01
    60
  • ChunJun框架在数据还原上的探索和实践 | Hadoop Meetup精彩回顾[亲测有效]

    ChunJun框架在数据还原上的探索和实践 | Hadoop Meetup精彩回顾[亲测有效]Hadoop是Apache基金会旗下最知名的基础架构开源项目之一。自2006年诞生以来,逐步发展成为海量数据存储、处理最为重要的基础组件,形成了非常丰富的技术生态。 作为国内顶尖的 Hadoop 开源

    2023-06-09
    101
  • DataX安装使用实现MySQL到MySQL数据同步

    DataX安装使用实现MySQL到MySQL数据同步 DataX安装使用实现MySQL到MySQL数据同步 1.前置条件: 1.1jdk安装 jdk安装前往官网,这里我安装jdk-8u261 解压 sudo mkdir -p /opt/moud…

    2023-03-27
    108
  • Python seek()函数:快速定位并移动文件指针

    Python seek()函数:快速定位并移动文件指针a href=”https://beian.miit.gov.cn/”苏ICP备2023018380号-1/a Copyright www.python100.com .Some Rights Reserved.

    2024-03-10
    35
  • redis 常用五种数据类型编码是什么_redis常用的数据类型

    redis 常用五种数据类型编码是什么_redis常用的数据类型转载请注明出处: 目录 Redis 的五种数据结构 Redis 数据结构的内部编码 1.String 1.1 常用命令 1.2 内部编码 1.3 典型使用场景 2. Hash 2.

    2023-05-19
    100

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注