0

0

关于数据库中架构的相关介绍

零下一度

零下一度

发布时间:2017-05-05 16:32:16

|

1759人浏览过

|

来源于php中文网

原创

1、MySQL 简介

概述
  • mysql是一个关系型数据库管理系统,由瑞典mysql ab公司开发,目前属于oracle公司。

  • MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

  • Mysql是开源的,所以你不需要支付额外的费用。

  • Mysql支持大型的数据库。可以处理拥有上千万条记录的大型数据库。

  • MySQL使用标准的SQL数据语言形式。

  • Mysql可以允许于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。

  • Mysql对PHP有很好的支持,PHP是目前最流行的Web开发语言。

  • MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。

  • Mysql是可以定制的,采用了GPL协议,你可以修改源码来开发自己的Mysql系统。

高级MySQL涉及到知识
  • mysql内核

  • sql优化攻城狮

  • mysql服务器的优化

  • 各种参数常量设定

  • 查询语句优化

  • 主从复制

  • 软硬件升级

  • 容灾备份

  • sql编程

  • 完整的mysql优化需要很深的功底,大公司甚至有专门的DBA写上述

2、MySQL Linux版的安装

  • 此次安装的是 MySQL 5.5, 安装环境 CentOS 6.5

  • 版本下载地址 官网下载地址

    • 下载 MySQL-ClientMySQL-Server

    • downloads.skysql.com/archives/mysql-5.5/MySQL-server-5.5.16-1.rhel4.i386.rpm

    • downloads.skysql.com/archives/mysql-5.5/MySQL-client-5.5.16-1.rhel4.i386.rpm

    • downloads.skysql.com/archives/mysql-5.5/MySQL-devel-5.5.16-1.rhel4.i386.rpm

  • 检查当前系统是否安装过MySQL

    • 查询命令:  rpm -qa|grep -i mysql

    • 删除命令:  rpm -e --nodeps RPM包全名

  • 安装mysql服务端(注意提示)

    • 关于数据库中架构的相关介绍

      设置密码提示

  • 安装mysql客户端

  • 查看MySQL安装时创建的mysql用户和mysql组

    • # cat /etc/passwd | grep mysql

    • # cat /etc/group | grep mysql

  • mysql服务的启+停

    • 查看字符集

    • 修改字符集,修改之前copy 的配置文件。(详细后续代码)

    • MySQL的安装位置

    • show variables like 'character%';

    • show variables like '%char%';

    • 关于数据库中架构的相关介绍

      字符集

    • 默认的是客户端和服务器都用了latin1,所以会乱码。

    • 在linux下查看安装目录 ps -ef|grep mysql

    • 拷贝当前5.5版本cp /usr/share/mysql/my-huge.cnf /etc/my.cnf

    • 5.6版本  cp /usr/share/mysql/my-default.cnf /etc/my.cnf

    • #chkconfig mysql on   设置自动启动

    • # chkconfig --list | grep mysql   检查是否设置了自动启动

    • # /etc/init.d/mysql start

    • # /etc/init.d/mysql stop

    • 或者

    • #service mysql start

    • #service mysql stop

    • 查看MySQL启停状态:  # ps -ef | grep mysql

    • 启停操作:

      云网OA
      云网OA

      采用JSP开发的办公自动化产品、基于B/S结构,运行环境:JDK v1.5、Tomcat v5.5、MySQL v4.1,三者均为以上版本其他相关内容:可视化流程设计: 流程支持串签、会签和分支流程,可以设置流程节点的修改、删除权限,并可指定流程中各个用户在表单中可以填写的域。智能表单所见即所得设计: 智能设计,自动在数据库中生成表格,方便优化程序 公共交流: 集论坛、博客、聊天室于一体文件柜:C

      下载
    • 设置MySQL 自启服务

    • 修改配置文件位置

    • 修改字符集和数据存储路径

路径 解释 备注
/var/lib/mysql/ mysql数据库文件的存放路径 /var/lib/mysql/atguigu.cloud.pid
/usr/share/mysql 配置文件目录 mysql.server命令及配置文件
/usr/bin 相关命令目录 mysqladmin mysqldump等命令
/etc/init.d/mysql 启停相关脚本

关于数据库中架构的相关介绍

MySQL安装位置

[client]
#password = your_password
port = 3306
socket = /var/lib/mysql/mysql.sock

# 这一行需要设置字符集
default-character-set=utf8

# The MySQL server
[mysqld]
port = 3306

# 还有这三行
character_set_server=utf8
character_set_client=utf8
collation-server=utf8_general_ci

socket = /var/lib/mysql/mysql.sock
skip-external-locking
key_buffer_size = 384M
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8

[mysql]
no-auto-rehash
# 还有这一行
default-character-set=utf8

3、Mysql配置文件

主要配置文件
  • 二进制日志log-bin

    • 主从复制

    • 关于数据库中架构的相关介绍


  • 错误日志log-error

    • 默认是关闭的,记录严重的警告和错误信息,每次启动和关闭的详细信息等。

  • 查询日志log

    • 默认关闭,记录查询的sql语句,如果开启会减低mysql的整体性能,因为记录日志也是需要消耗系统资源的

  • 数据文件

    • windows

    • Linux:

    • D:\devSoft\MySQLServer5.5\data目录下可以挑选很多库

    • 默认路径 #cd /var/lib/mysql/

    • 看看当前系统中的全部库后再进去 #ls -1F | grep ^d

    • 两系统

    • frm文件: 存放表结构

    • myd文件: 存放表数据

    • myi文件: 存放表索引

  • 如何配置

    • Windows: my.ini文件

    • Linux:  /etc/my.cnf文件

4、Mysql逻辑架构介绍

总体概览
  • 和其它数据库相比,MySQL有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。这种架构可以根据业务的需求和实际需要选择合适的存储引擎。

    • 数据存储层,主要是将数据存储在运行于裸设备的文件系统之上,并完成与存储引擎的交互。

    • 存储引擎层,存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过API与存储引擎进行通信。不同的存储引擎具有的功能不同,这样我们可以根据自己的实际需要进行选取。后面介绍MyISAM和InnoDB

    • 第二层架构主要完成大多少的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化及部分内置函数的执行。所有跨存储引擎的功能也在这一层实现,如过程、函数等。在该层,服务器会解析查询并创建相应的内部解析树,并对其完成相应的优化如确定查询表的顺序,是否利用索引等,最后生成相应的执行操作。如果是select语句,服务器还会查询内部的缓存。如果缓存空间足够大,这样在解决大量读操作的环境中能够很好的提升系统的性能。

    • 最上层是一些客户端和连接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似于tcp/ip的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程。同样在该层上可以实现基于SSL的安全链接。服务器也会为安全接入的每个客户端验证它所具有的操作权限。

    • 关于数据库中架构的相关介绍


    • 1、连接层

    • 2、服务层

    • 3、引擎层

    • 4、存储层

查询说明
  • 首先,mysql的查询流程大致是:

    • mysql客户端通过协议与mysql服务器建连接,发送查询语句,先检查查询缓存,如果命中,直接返回结果,否则进行语句解析

    • 有一系列预处理,比如检查语句是否写正确了,然后是查询优化(比如是否使用索引扫描,如果是一个不可能的条件,则提前终止),生成查询计划,然后查询引擎启动,开始执行查询,从底层存储引擎调用API获取数据,最后返回给客户端。怎么存数据、怎么取数据,都与存储引擎有关。

    • 然后,mysql默认使用的BTREE索引,并且一个大方向是,无论怎么折腾sql,至少在目前来说,mysql最多只用到表中的一个索引。

5、Mysql存储引擎

  • 查看命令

    • show variables like '%storage_engine%';

    • mysql> show engines;

    • 查看当前的MySQL 提供什么存储引擎

    • 看你的 MySQL 当前默认的存储引擎:

    • 关于数据库中架构的相关介绍

      默认的存储引擎

  • MyISAMInnoDB

    • 关于数据库中架构的相关介绍

      两种引擎对比

  • 阿里巴巴、淘宝用哪个

    • 关于数据库中架构的相关介绍


    • Percona 为 MySQL 数据库服务器进行了改进,在功能和性能上较 MySQL 有着很显著的提升。该版本提升了在高负载情况下的 InnoDB 的性能、为 DBA 提供一些非常有用的性能诊断工具;另外有更多的参数和命令来控制服务器行为。

    • 该公司新建了一款存储引擎叫xtradb完全可以替代innodb,并且在性能和并发上做得更好,

    • 阿里巴巴大部分mysql数据库其实使用的percona的原型加以修改。

    【相关推荐】

    1. 免费mysql在线视频教程

    2. MySQL最新手册教程

    3. 布尔教育燕十八mysql入门视频教程

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

32

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

23

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

16

2026.01.31

golang 循环遍历
golang 循环遍历

本专题整合了golang循环遍历相关教程,阅读专题下面的文章了解更多详细内容。

5

2026.01.31

Golang人工智能合集
Golang人工智能合集

本专题整合了Golang人工智能相关内容,阅读专题下面的文章了解更多详细内容。

6

2026.01.31

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

268

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

195

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

170

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

85

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 8.2万人学习

Django 教程
Django 教程

共28课时 | 3.8万人学习

Excel 教程
Excel 教程

共162课时 | 14.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号