Mysql索引、事务与存储引擎

创建、查看、删除索引的方法
创建索引
创建普通索引
格式:CREATE INDEX <索引的名字> ON 表名(字段);

示例:
mysql> create index salary_index on IT_salary(薪资);
创建唯一性索引
格式:CREATE UNIQUE INDEX <索引的名字> ON 表名(字段);

示例:
mysql> create unique index salary_unique_index on IT_salary(姓名);
创建主键索引
格式:CREATE TABLE 表名([…],PRIMARY KEY(字段));
ALTER TABLE 表名 ADD PRIMARY KEY(字段);
示例:
mysql> create table IT_salary(岗位类别 char(20) not null,姓名 char(30)
not null,年 龄 int(3),
若在新建表时忘记创建主键,可以进行如下操作:
mysql> alter table IT_salary add primary key(员工ID);

查看索引
格式:SHOW INDEX FROM 表名;
SHOW KEYS FROM 表名;

示例:
mysql> show index from IT_salary \G;

删除索引
格式:DROP INDEX <索引的名称> ON 表名;
ALTER TABLE 表名DROP INDEX <索引的名称>;
ALTER TABLE 表名DROP PRIMARY KEY;

示例:
mysql> drop index salary_index on IT_salary;
mysql> alter table IT_salary drop index salary_unique_index;
mysql> alter table IT_salary drop primary key;

事务的ACID特点
事务具有四个属性:ACID
·原子性(Atomicity)
·一致性(Consistency)
·隔离性(Isolation)
·持久性(Durability)
事务处理命令控制事务
begin 开始一个事务
commit 提交一个事务
rollback 回滚一个事务(撤销)

示例:
mysql> use auth;
Database changed
mysql> begin; //事务开始
mysql> insert into users values(‘lisi’,password(‘123123’));
mysql> commit; //事务结束并提交
mysql> select * from users;(查看)
mysql> rollback; //回滚(撤销操作),从begin开始的所有命令都将被撤销

使用set命令进行控制
mysql> set autocommit = 0; //禁止自动提交

mysql> set autocommit = 1; //开启自动提交

锁定类型:不同的存储引擎支持不同级别的锁定
表锁定:MyISAM、MEMORY
行锁定:InnoDB
页锁定:BDB

查看数据库可配置的存储引擎

[root@mysql ~]# mysql -uroot -p123123
mysql> show engines \G;

查看表使用的存储引擎
方法一:SHOW TABLE STATUS FROM 库名 WHERE name = ‘表名’;
mysql> show table status from client where name=‘user_info’ \G;
方法二:SHOW CREATE TABLE 表名;
mysql> show create table client.user_info \G;
配置存储引擎为所选择的类型

方法一:ALTER TABLE 表名 ENGINE=引擎;
示例:
mysql> alter table client.user_info engine=innodb;

方法二:修改my.cnf的default-storage-engine为引擎
示例:
[root@mysql ~]# vim /etc/my.cnf
[mysqld]
default-storage-engine = InnoDB
[root@mysql ~]# /etc/init.d/mysqld restart
[root@mysql ~]# mysql -uroot -p123123 -e ‘show engines \G;’

方法三:CREATE TABLE 建立表时使用 engine=引擎
示例:
mysql> use auth;
mysql> create table id(id int) engine=myisam;
mysql> show create table auth.id;

方法四:mysql_convert_table_format --user=root --password=密码 --sock=文件路径/mysql.sock --engine=引擎 库名 表名
示例:
mysql> show create table client.user_info\G;
[root@mysql ~]# mysql_convert_table_format --user=root --password=123123 --sock=/var/lib/mysql/mysql.sock --engine=myisam client user_info
[root@mysql ~]# mysql -uroot -p123123 -e ‘show create table client.user_info\G;’
使用此方法从InnoDB改为MyISAM没有问题,但从MyISAM改成InnoDB不行。
若忘记了命令的选项,可以通过–help来查看帮助信息
[root@mysql ~]# mysql_convert_table_format --help

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值