请选择 进入手机版 | 继续访问电脑版

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 156|回复: 1

MYSQL数据库简介和5.7安装实战

[复制链接]

31

主题

20

回帖

279

积分

管理员

积分
279
发表于 2024-1-10 18:05:34 | 显示全部楼层 |阅读模式
MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

本章向读者介绍关系型数据库特点、MySQL数据库引擎特点、数据库安装配置、SQL案例操作、数据库索引、慢查询、MySQL数据库集群实战等。

1.1  MYSQL数据库入门简介MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。

MySQL数据库主要用于存储各类信息数据,例如:员工姓名、身份证ID、商城订单及金额、销售业绩及报告,学生考试成绩、网站帖子、论坛用户信息、系统报表等等。
MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。

关系数据库管理系统(Relational Database Management System,RDBMS),是将数据组织为相关的行和列的系统,而管理关系数据库的计算机软件就是关系数据库管理系统,常用的关系型数据库软件有MYSQL、Mariadb、Oracle、SQL Server、PostgreSQL、DB2等。)

RDBMS数据库的特点如下:
图片12.png
  • 数据以表格的形式出现;
  • 每行记录数据的真实内容;
  • 每列记录数据真实内容的数据域;
  • 无数的行和列组成一张表;
  • 若干的表组成一个数据库。

目前主流架构LNMP(Linux+Nginx+MySQL+PHP),MySQL更是得到各位IT运维、DBA的青睐,虽然MySQL数据库已被Orcacle公司收购,不过好消息是原来MySQL创始人已独立出来自己重新开发了MariaDB数据库,开源免费,目前越来越多的人开始尝试使用。MariaDB数据库兼容MySQL数据库所有的功能和相关参数。

MySQL数据库运行在服务器前,需要选择启动的引擎,好比一辆轿车,性能好的发动机会提升轿车的性能,从而启动、运行更加的高效。同样MYSQL也有类似发动机引擎,这里称之为MYSQL引擎。

MYSQL引擎包括:ISAM、MyISAM、InnoDB 、MEMORY、CSV、BLACKHOLE、ARCHIVE、PERFORMANCE_SCHEMA、Berkeley、Merge、Federated、Cluster/NDB等,其中MyISAM、InnoDB使用最为广泛,如下为Myisam        BDB        Memory        InnoDB        Archive引擎功能的对比:
引擎特性
Myisam
BDB
Memory
InnoDB
Archive
批量插入的速度
非常高
集群索引
不支持
不支持
不支持
支持
不支持
数据缓存
不支持
不支持
支持
支持
不支持
索引缓存
支持
不支持
支持
支持
不支持
数据可压缩
支持
不支持
不支持
不支持
支持
硬盘空间使用
NULL
非常低
内存使用
中等
外键支持
不支持
不支持
不支持
支持
不支持
存储限制
没有
没有
64TB
没有
事务安全
不支持
支持
不支持
支持
不支持
锁机制
表锁
页锁
表锁
行锁
行锁
B树索引
支持
支持
支持
支持
不支持
哈希索引
不支持
不支持
支持
支持
不支持
全文索引
支持
不支持
不支持
不支持
不支持

性能总结:MyISAM MySQL 5.0 之前的默认数据库引擎,最为常用。拥有较高的插入,查询速度,但不支持事务;
InnoDB事务型数据库的首选引擎,支持ACID事务,ACID包括:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),一个支持事务(Transaction)的数据库,必需要具有这四种特性,否则在执行事务过程无法保证数据的正确性。
原子性(Atomicity)
事务是一个不可分割的工作单位, 事务中的操作要么都执行, 要么都不执行。

一致性(Consistency)
事务开始前和结束后, 数据库的完整性约束没有被破坏, 代表了底层数据存储的完整性。

隔离性(Isolation)
多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其它事务运行效果, 意味着事务必须在不干扰其他进程或事务的前提下独立执行。

持久性(Durability)
事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中, 事务一旦提交,则持久化保存在数据库中。

MYSQL5.5之后默认引擎为InnoDB,Innodb支持行级锁定, 支持事物、外键等功能。
BDB源自 Berkeley DB,事务型数据库的另一种选择,支持Commit 和Rollback 等其他事务特性;

Memory所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在 MySQL 重新启动时丢失;
Mysql常用的两大引擎有MyISAM和innoDB,那他们有什么明显的区别呢,什么场合使用什么引擎呢?

MyISAM类型的数据库表强调的是性能,其执行数度比InnoDB类型更快,但不提供事务支持,不支持外键,如果执行大量的SELECT(查询)操作,MyISAM是更好的选择,支持表锁。
InnoDB提供事务支持事务、外部键、行级锁等高级数据库功能,执行大量的INSERT或UPDATE,出于性能方面的考虑,可以考虑使用InnoDB引擎。

1.2  MySQL 数据库5.6版本实战

MySQL数据库安装方法有两种,一种是yum/rpm通过YUM源在线安装,另外一种是通过源码软件编译安装。
(1) YUM方式安装MYSQL方法,执行命令:

yum  install  mysql-server  mysql-devel  mysql-libs  -y  CentOS6.x YUM安装
yum  install  mariadb-server mariadb    mariadb-libs -y  CentOS7.x YUM安装

(2) 源码安装MYSQL5.6.20方法,通过cmake、make、make install三个步骤实现。

wget http://down1.chinaunix.net/distfiles/mysql-5.6.20.tar.gz
yum -y install gcc-c++ ncurses-devel cmake make perl gcc autoconf automake zlib libxml2 libxml2-devel libgcrypt libtool bison
tar  -xzf mysql-5.6.20.tar.gz
cd mysql-5.6.20
cmake  .  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql56/ \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_DATADIR=/data/mysql/ \
-DSYSCONFDIR=/etc \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DWITH_XTRADB_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EXTRA_CHARSETS=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_BIG_TABLES=1 \
-DWITH_DEBUG=0
make
make install

1.3  MySQL 数据库5.7版本实战(1) 源码安装MYSQL5.7.20方法,通过cmake、make、make install三个步骤实现。

wget http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz  
tar -xzvf  boost_1_59_0.tar.gz
mv boost_1_59_0 /usr/local/boost
yum -y install gcc-c++ ncurses-devel cmake make perl gcc autoconf automake zlib libxml2 libxml2-devel libgcrypt libtool bison
tar  -xzf mysql-5.7.20.tar.gz
cd mysql-5.7.20
cmake  .  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5/ \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_DATADIR=/data/mysql/ \
-DSYSCONFDIR=/etc \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DWITH_XTRADB_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EXTRA_CHARSETS=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_BIG_TABLES=1 \
-DWITH_DEBUG=0 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost
make
make install
/usr/local/mysql5/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql5 --datadir=/data/mysql

31

主题

20

回帖

279

积分

管理员

积分
279
 楼主| 发表于 2024-1-11 14:15:19 | 显示全部楼层

这个帖子不回对不起自己!
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表