MySQL索引、事务、引擎

索引:

1、普通索引:

create index 自定义索引名称 on 库名.表名(表中的字段);

2、唯一性索引:

create unique 自定义索引名称 on 库名.表名(表中的字段);

3、主键索引:

create table 表名(字段1,字段2……,PRIMARY KEYS(前面的某个字段));
alter 库名.表名 add PRIMARY KEYS(表的某个字段);

注:主键索引和唯一性索引的区别是,唯一性索引可以允许有空值。

4、全文索引:仅在MyISAM存储引擎下使用。

ALTER TABLE 表名 ADD FULLTEXT(字段1);

create table 表名(“字段1” 类型 ,FULLTEXT(字段1))engine=MyISAM;

5、单列索引:

一个索引只包含一个列,一个表可以有多个单列索引.

方法一:CREATE INDEX 索引名 ON 表名(字段);

方法二:ALTER TABLE 表名 ADD INDEX 索引名(字段);

6、组合索引:

CREATE INDEX 索引名 On 表名(字段1(length),字段2(length),…);

ALTER TABLE 表名 ADD INDEX 索引名(字段1,字段2);

事务命令控制事务:

begin; 表示开始一个事务

中间输入sql语句;

commit; 表示提交一个事务

rollback; 回滚事务,会撤销所有之前的操作,在提交

savepoint s1; 定义回滚点
rollback to savepoint s1; 在提交之前执行

set设置控制事务:
set authcommit = 0; 禁止自动提交

设置禁止自动提交后,输入SQL语句命令后,需要手动使用"commit"去提交执行。

set authcommit=1; 开启自动提交

MySQL存储引擎:

MySQL5.5支持的存储引擎有InnoDB、MyISAM、MEMORY、MRG_MyISAM、ARCHIVE、FEDERATED、CSV、BLACKHOLE、PERFORMANCE_SCHEMA共9种。

可在数据库中使用"SHOW ENGINES" 查看系统所支持的引擎类型

功能 InnoDB MyISAM
支持事务 支持 不支持
支持全文搜索 不支持 支持
外键约束 支持 不支持
表空间大小 较大 较小
数据行锁定 支持 不支持

MyISAM存储引擎:该存储引擎不支持事务,也不知外键约束,访问速度比较快。因此对不需要事务处理,以访问为主的应用适合使用该引擎。

InnoDB存储引擎:对需要日夕频繁的更新、删除操作,同时还对事务的完整性要求比较高,需要实现并发控制的应用,适合使用该存储引擎。

MySQL5.5以上版本默认的存储引擎是InnoDB。

1、查看默认存储引擎

SHOW  VARIABLES  LIKE '%storage_engine%';

注:%storage_engine%:表示查询默认存储引擎。

2、查看数据库中的所有数据表使用的引擎:

show table status from 数据库名 \G;

查看数据库中某个数据表使用的引擎:
show table status from 数据库名 数据表名 \G;

查看创建表时使用的命令:
show create table 表名;

注:\G表示以垂直形式显示内容。

3、修改默认存储引擎:

通过修改配置文件my.cnf来实现,修改以下内容:
[mysqld]下添加:
default-storage-engine=MyISAM
注:
改完后,删除/mysql/data目录下的ib_logfile0,ib_logfile1
否则在启动mysql时会报错,重启数据库服务。

4、指定表的存储引擎

(1)、在数据表已存在的情况下,修改表的存储引擎:
alter table 表名 engine=存储引擎名称;

(2)、在创建数据表的情况下制定数据表的存储引擎:
CREATE TABLE 表名(
….
)ENGINE=存储引擎;

5、MySQL数据文件

在MySQL中,不同的存储引擎涉及 的数据文件不同.
可通过配置文件/etc/my.cnf来制定路径。
[mysqld]
datadir = /usr/local/mysql/data

该目录下,每个数据库相关文件均存放在以数据库命名的目录中。

MyISAM类型的表文件有3个,分别为:

.frm文件 :表结构文件。主要存放表的元数据,包括表结构定义信息等。该文件与存储引擎无关,即任何存储类型的表都会有这个文件

MYI文件 :索引文件。其主要存放MyISAM类型表的索引信息,每个MyISAM类型的表会有一个.MYI文件,存放的位置与.frm文件相同。

.MYD文件 :数据文件。存放表中数据的文件

InnoDB类型的表文件有.frm和.idb相关文件

.frm文件:表结构文件。主要存放表的元数据,包括表结构定义信息等。该文件与存储引擎无关,即任何存储类型的表都会有这个文件

.idb文件 :数据文件,保存所有InnoDB类型表的数据

1、安装依赖

yum install gcc gcc-c++ make -y yum -y install \ ncurses
ncuses-devel \ bson \ cmake

2、下载源码包

wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-boost-*

3、创建mysql用户

useradd -s /sbin/nologin mysql

4、解压源码包

tar xf mysql-boost-5.6.20.tar.gz cd mysql-5.7.20

定制

cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock
-DSYSCONFDIR=/etc \
-DSTSTEMD_PID_DIR=/usr/local/mysql
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGIINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
-DMYSQL_DATADIR=/usr/local/mysql/data
-DWITH_BOOST=BOOST
-DWITH_SYSTEMD=1

编译并且安装

make && make install

目录权限修改

chown -R mysql.mysql /usr/local/mysql/

修改配置文件:

vi /etc/=my.cnf ——mysql主配置文件 [client] #客户端设置,即客户端默认的连接参数 port =
3306 #默认连接端口 default-character-set=utf8 #设置字符编码
socket=/usr/local/mysql.sock #为MySQL客户程序与服务器之间的本地通信指定一个套接字文件

[mysql] 设置mysql客户端 port = 3306 default-character-set=utf8 socket =
/usr/local/mysql/mysql.sock

[mysqld] #服务端基本设置 user = mysql #MySQL启动用户 basedir
=/usr/local/mysql #使用该目录作为根目录(安装目录) datadir =/usr/local/mysql/data #数据文件存放的目录 port = 3306 #MySQL监听端口
character_set_server=utf8 #服务器默认编码(数据库级别) pid-file =
/usr/local/mysql.pid #pid文件所在目录 socket =
/usr/local//myusql/mysql/sock #为MySQL客户端程序和服务器之间的本地通讯指定一个套接字文件
server-id = 1 #服务端ID,用来高可用时做区分
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZER

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值