iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >01.初识MySQL
  • 740
分享到

01.初识MySQL

01.初识MySQL 2016-05-23 02:05:14 740人浏览 无得
摘要

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社区版本类型
  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 <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

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字节大小
您可能感兴趣的文档:

--结束END--

本文标题: 01.初识MySQL

本文链接: https://www.lsjlt.com/news/3231.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • oracle怎么查询当前用户所有的表
    要查询当前用户拥有的所有表,可以使用以下 sql 命令:select * from user_tables; 如何查询当前用户拥有的所有表 要查询当前用户拥有的所有表,可以使...
    99+
    2024-05-14
    oracle
  • oracle怎么备份表中数据
    oracle 表数据备份的方法包括:导出数据 (exp):将表数据导出到外部文件。导入数据 (imp):将导出文件中的数据导入表中。用户管理的备份 (umr):允许用户控制备份和恢复过程...
    99+
    2024-05-14
    oracle
  • oracle怎么做到数据实时备份
    oracle 实时备份通过持续保持数据库和事务日志的副本来实现数据保护,提供快速恢复。实现机制主要包括归档重做日志和 asm 卷管理系统。它最小化数据丢失、加快恢复时间、消除手动备份任务...
    99+
    2024-05-14
    oracle 数据丢失
  • oracle怎么查询所有的表空间
    要查询 oracle 中的所有表空间,可以使用 sql 语句 "select tablespace_name from dba_tablespaces",其中 dba_tabl...
    99+
    2024-05-14
    oracle
  • oracle怎么创建新用户并赋予权限设置
    答案:要创建 oracle 新用户,请执行以下步骤:以具有 create user 权限的用户身份登录;在 sql*plus 窗口中输入 create user identified ...
    99+
    2024-05-14
    oracle
  • oracle怎么建立新用户
    在 oracle 数据库中创建用户的方法:使用 sql*plus 连接数据库;使用 create user 语法创建新用户;根据用户需要授予权限;注销并重新登录以使更改生效。 如何在 ...
    99+
    2024-05-14
    oracle
  • oracle怎么创建新用户并赋予权限密码
    本教程详细介绍了如何使用 oracle 创建一个新用户并授予其权限:创建新用户并设置密码。授予对特定表的读写权限。授予创建序列的权限。根据需要授予其他权限。 如何使用 Oracle 创...
    99+
    2024-05-14
    oracle
  • oracle怎么查询时间段内的数据记录表
    在 oracle 数据库中查询指定时间段内的数据记录表,可以使用 between 操作符,用于比较日期或时间的范围。语法:select * from table_name wh...
    99+
    2024-05-14
    oracle
  • oracle怎么查看表的分区
    问题:如何查看 oracle 表的分区?步骤:查询数据字典视图 all_tab_partitions,指定表名。结果显示分区名称、上边界值和下边界值。 如何查看 Oracle 表的分区...
    99+
    2024-05-14
    oracle
  • oracle怎么导入dump文件
    要导入 dump 文件,请先停止 oracle 服务,然后使用 impdp 命令。步骤包括:停止 oracle 数据库服务。导航到 oracle 数据泵工具目录。使用 impdp 命令导...
    99+
    2024-05-14
    oracle
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作