mysql的索引,事务,引擎

索引:
1、普通索引:
create index 自定义索引名称 on 库名.表名(表中的字段);
如:create index student on aa.学生表(学号);

2、唯一性索引:
create unique index 自定义索引名称 on 库名.表名(表中的字段);
如:create unique index tudent on aa.学生表(学号);
注:删除索引 DROP INDEX 索引名称 ON 表名

3、主键索引:
create table 表名(字段1,字段2……,PRIMARY KEYS(前面的某个字段));
alter table 库名.表名 add PRIMARY KEYS(表的某个字段);
如:create table studentss(id int(4), name char(6),age int(4),PRIMARY KEY(id));
如:alter table studentss add primary key(id)

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

注: 删除主键
如果一个主键是自增长的,不能直接删除该列的主键索引,

     应当先取消自增长,再删除主键特性
        alter table 表名 drop primary key; 【如果这个主键是自增的,先取消自增长.】
     具体方法如下:
        alter table articles modify id int ; 【重新定义列类型】
        alter table articles drop primary key;

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);

7,查看索引的方法
show index from 表名 \G;
show keys from 表名 \G;

注:所有的索引名称不能重复

事务命令控制事务:
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=存储引擎;

(3),修改默认存储引擎:
通过修改配置文件my.cnf来实现,修改以下内容:
[mysqld]下添加:
default-storage-engine=MyISAM

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

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

/usr/lcoal/mysql/data mysql的文件目录

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

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

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

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

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

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

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

原文地址:http://blog.51cto.com/14150862/2341580

时间: 2024-11-09 03:02:25

mysql的索引,事务,引擎的相关文章

原创 MySQL的索引与事务、存储引擎

索引的概念 数据库中的索引与书籍中的目录类似 在一本书中,无须阅读整本书,利用目录就可以快速查找所需信息书中的目录是一个词语列表,其中注明了包含各个词的页码 数据库索引 在数据库中,索引数据库程序无须对整个表进行扫描,就可以在其中找到所需数据数据库中的索引是某个表中一列或者若干列值的集合,以及物理标识这些值的数据页的逻辑指针清单 索引的作用 设置了合适的索引之后,数据库利用各种快速的定位技术,能够大大加快查询速率:特别是当表很大时,或者查询涉及到多个表时,使用索引可使查询加快成千倍:可以降低数据

mysql常识以及存储引擎,锁和事务

常见的数据库系统: 1.甲骨文的Oracle 2.IBM的DB2 3.微软的Access和 SQL Server 4.开源PostgreSQL 5.开源MySQL mysql数据库三阶段: 初期开源数据库阶段 sun mysql阶段 oracle mysql阶段 OLTP:联机事务处理,面向基本的.日常的事务处理. OLAP:联机分析处理,数据仓库的主要应用. mysql分支版本(一些): MariaDB : Maria引擎室myisam存储引擎的升级版本,增加了对Hash join的支持和Se

mysql数据库之 存储引擎、事务、视图、触发器、存储过程、函数、流程控制

目录 一.存储引擎 1.什么是存储引擎? 2.mysql支持的存储引擎 3. 使用存储引擎 二.事务 三.视图 1.什么是视图 2.为什么要用视图 3.如何用视图 四.触发器 为何要用触发器 创建触发器语法 五.存储过程 六.函数 七.流程控制 八.数据库备份(运维方向) 一.存储引擎 1.什么是存储引擎? mysql中建立的库===>文件夹 库中建立的表===>文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制:比如处理文本用txt类型,处理表格用exce

什么是数据库的事务?MySql中哪些存储引擎支持事务?

什么是事务? 事务由一个或多个sql语句组成一个整体,如果所有的语句执行成功那么修改将会全部生效,如一条sql语句将销量+1,下一条再+1,倘若第二条失败,那么销量将撤销第一条sql语句的+1操作,只有在该事务中所有的语句都执行成功才会将修改加入到数据库中. 事务的特性 事务具体四大特性,也就是经常说的ACID 1. 原子性(Atomicity)  原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响. 

联合分组、子查询、视图、事务、python操作mysql、索引

目录 联合分组.子查询.视图.事务.python操作mysql.索引 一.联合分组 二.子查询 三.all 与any:区间修饰条件 四.视图:view 视图的增删改 五.事务 5.1.事务的概念 5.2.事务的四大特性 六.pymysql 模块:python操作mysql 6.1 安装pymysql 模块 6.2 python用pymysql 操作mysql步骤 6.3 游标操作 6.4 pymysql事务 6.5 sql注入 七.索引 联合分组.子查询.视图.事务.python操作mysql.

mysql之索引原理与慢查询优化

一.介绍 1.什么是索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重.说起加速查询,就不得不提到索引了. 2.为什么要有索引呢? 索引在MySQL中也叫做"键",是存储引擎用于快速找到记录的一种数据结构.索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要.索引优化应该是对查询性能优化最有效的手段了.

mysql数据库存储的引擎和数据类型

一.查看支持的存储引擎 SHOW ENGINES \G; 或者 SHOW VARIABLES LIKE 'have%'; 二.安装版mysql的默认引擎是InnoDB,免安装版默认引擎是MyISAM 三.查询默认存储引擎 SHOW VARIABLES LIKE 'storage_engine%'; 四.修改默认存储引擎 1.通过向导 2.修改my.ini配置文件 五.选择存储引擎 1.Myisam是Mysql的默认存储引擎.当create创建新表时,未指定新表的存储引擎时,默认使用Myisam.

mysql三:存储引擎

一 什么是存储引擎 mysql中建立的库===>文件夹 库中建立的表===>文件 现实生活中我们用来存储数据的文件应该有不同的类型:比如存文本用txt类型,存表格用excel,存图片用png等 数据库中的表也应该有不同的类型,表的类型不同,会对应mysql不同的存取机制,表类型又称为存储引擎. 存储引擎说白了就是如何存储数据.如何为存储的数据建立索引和如何更新.查询数据等技术的实现方法.因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型) 在O

mysql中InnoDB存储引擎的行锁和表锁

Mysql的InnoDB存储引擎支持事务,默认是行锁.因为这个特性,所以数据库支持高并发,但是如果InnoDB更新数据的时候不是行锁,而是表锁的话,那么其并发性会大打折扣,而且也可能导致你的程序出错. 而导致行锁变为表锁的情况之一就是: SQL的更新(update)或者删除(delete)语句中未使用到索引,导致在InnoDB在对数据进行相应操作的时候必须把整个表锁起来进行检索(表锁).而如果使用了索引的话,InnoDB只会通过索引条件检索数据,而只锁住索引对应的行(行锁). 下面记录一下我遇到

MySQL数据库常见存储引擎(一)

熟悉mysql数据库的朋友,肯定会喜欢mysql强大的插件式存储引擎,能够支持太多存储引擎,当目前的存储引擎不能满足你的需求时,你可以根据自己的需求选择合适的引擎,将相关的文件拷贝到相关路径,甚至不需要重启数据库,就可以使用.真的很强大. 1 常见存储引擎memory存储引擎  硬盘上存储表结构信息,格式为.frm,数据存储在内存中    不支持blob text等格式    创建表结构,    支持表锁    支持B树索引和哈希索引    支持数据缓存 数据 缓存    插入速度快    分配