
Mysql索引优化
Mysql的学习
1、什么是数据库?
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
2、Mysql5.7.32安装
- 解压:
tar xvf mysql-5.7.32-1.el7.x86_64.rpm-bundle.tar -C ../software/Mysql
安装之前使用以下命令检查系统之前是否存在Mysql或者Maridb-lib的软件包。
rpm -qa | grep maridb
如果有使用yum remove
或者rpm -e [软件包名称]--nodes
后加软件包名称
解压之后有十个RPM软件包,使用以下命令进行安装。
rpm -ivh mysql-*
- 报错的解决方法:(CSDN安装步骤)
- 2.1提示:perl(JSON) is needed by mysql-community-test-5.7.32-1.el7.x86_64:
yum install -y perl-JSON.noarch yum install -y perl.x86_64 perl-devel.x86_64
- 2.2 libnuma.so.1()(64bit) is needed by mysql-community-server-8.0.13-1.el7.x86_64 libnuma.so.1(libnuma_1.1)(64bit) is needed by mysql-community-server-8.0.13-1.el7.x86_64 libnuma.so.1(libnuma_1.2)(64bit) is needed by mysql-community-server-8.0.13-1.el7.x86_64
yum install numactl -y
- 2.3
pkgconfig(openssl) is needed by mysql-community-devel-8.0.13-1.el7.x86_64
yum install openssl-devel.x86_64 openssl.x86_64 -y
- 2.4 perl(Data::Dumper) is needed by mysql-community-test-8.0.13-1.el7.x86_64
yum -y install autoconf
解决报错的问题之后再使用
rpm -ivh mysql-*
进行安装。
- 2.5
mysql-community-client-5.7.32-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
rpm -ivh mysql-community-client-5.7.32-1.el7.x86_64.rpm --force --nodeps
- 安装完成之后的配置:
- 初始化数据库:
mysqld --initialize --console
- 启动mysql的服务:
systemctl start mysqld
- 查看mysql服务的运行状态:
systemctl status mysqld
- 获取mysql的初始密码(复制一下,待会登陆要用):
cat /var/log/mysqld.log | grep password
- 测试是否正常登陆mysql数据库
mysql -u root -p
粘贴刚才复制的初始Mysql密码。
- 更改初始Mysql密码
ALTER USER 用户名@主机名 identified by "密码"
alter user root@localhost identified by "Xyt19981120.+";
- 授权远程登陆之后记得刷新权限,并且确定防火墙开启3306端口。
grant all privileges on *.* to 'root'@'%' identified by 'Xyt19981120.+' with grant option;
flush privileges;
- 关闭远程登陆的权限将%改为本地(localhost)
补充
由于Mysql本身有密码策略,在学习时可改变其策略防止因简单密码而报错。
set global validate_password_policy=0;//满足密码长度即可
set global validate_password_length=6;//最低密码长度为6
set global validate_password_policy=0;
set global validate_password_length=4;
3. 索引
3.1
索引的概述
MYSQL官方对索引的定义为:索引(index)是帮助Mysql高级获取数据的数据结构(有序)。在数据之外,数据库系统还维护着,满足特定查找算法的数据结构,这些结构以某种当时引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。
索引的意图如下:
show databases;
–持续更新中……