赞
踩
-索引虽可以提升数据库查询的速度,但并不是任何情况下都适合创建索引。因为索引本身会消耗系统资源,在有索引的情况下,数据库会先进行索引查询,然后定位到具体的数据行,如果索引使用不当,反而会增加数据库的负担
create table member (id int (10),name varchar (10), cardid int (18), phone int (11) , address varchar (50) , remark text) ;
最基本的索引类型,没有唯一性之类的限制
共三种创建方式
直接创建索引
CREATE INDEX 索引名 ON 表名 (列名[(length)]);
create index id_index on member (id) ;
修改表方式创建
ALTER TABLE 表名 ADD INDEX 索引名(列名);
alter table cc02 add index id_index(aa);
创建表的时候指定索引
CREATE TABLE 表名 ( 字段1 数据类型,字段2 数据类型[,…],INDEX 索引名 (列名));
create table cc02 (id int(10),aa varchar(10),bb varchar(10),cc varchar(10),index id_index(id));
直接创建唯一索引
CREATE UNIQUE INDEX 索引名 ON 表名(列名);
create unique index cc_index on cc02(cc);
修改表方式创建
ALTER TABLE 表名 ADD UNIQUE 索引名 (列名);
同上不做演示
创建表的时候指定
CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...],UNIQUE 索引名 (列名));
同上不做演示
创建表的时候指定
CREATE TABLE 表名 ([...],PRIMARY KEY (列名));
修改表方式创建
ALTER TABLE 表名 ADD PRIMARY KEY (列名);
alter table cc02 add primary key (id);
CREATE TABLE 表名 (列名1 数据类型,列名2 数据类型,列名3 数据类型,INDEX 索引名 (列名1,列名2,列名3));
select * from 表名 where 列名1='...' AND 列名2='...' AND 列名3='...';
直接创建索引
CREATE FULLTEXT INDEX 索引名 ON 表名 (列名);
create fulltext index bb_index on cc02(bb);
修改表方式创建
ALTER TABLE 表名 ADD FULLTEXT 索引名 (列名);
创建表的时候指定索引
CREATE TABLE 表名 (字段1 数据类型[,…],FULLTEXT 索引名 (列名));
使用全文索引查询
select * from cc02 where match (bb) against (444);
show index from 表名;
show keys from 表名;
各字段含义
drop index bb_index on cc02;
alter table cc02 drop primary key;
ACID,是指在可靠数据库管理系统(DBMS)中,事务(transaction)应该具有的四个特性
这是可靠数据库所应具备的几个特性
事务之间的相互影响分为几种
Mysql及事物隔离级别
mysql默认的事务处理级别是repeatable read ,而Oracle 和SQL Server是read committed
查询全局事务隔离级别
show global variabiles like 'isolation%';
select @@global.tx_isolation;
查询会话事务隔离级别
show session variables like 'isolation%' ;
SELECT @@session.tx_isolation;
select @@tx_isolation;
设置全局事务隔离级别
set global transaction isolation level read committed;
设置会话事务隔离级别
set session transaction isolation level read committed;
在事务管理中,原子性是基础,隔离性是手段,一致性是目的,持久性是结果
MySQL中的数据用各种不同的技术存储在文件中,每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力,这些不同的技术以及配套的功能在MySQL中称为存储引擎
存储引擎是MySQL将数据存储在文件系统中的存储方式或者存储格式
MyISAM
InnoDB
静态(固定长度)表
静态表是默认的存储格式。静态表中的字段都是非可变字段,这样每个记录都是固定长度的,这种存储方式的优点是存储非常迅速,容易缓存,出现故障容易恢复;缺点是占用的空间通常比动态表多
动态表
动态表包含可变字段,记录不是固定长度的,这样存储的优点是占用空间较少,但是频繁的更新、删除记录会产生碎片,需要定期执行OPTIMIZETABLE语句或myisamchk-r命令来改善性能,并且出现故障的时候恢复相对比较困难
压缩表
压缩表由myisamchk工具创建,占据非常小的空间,因为每条记录都是被单独压缩的,所以只有非常小的访问开支
通过alter table修改
use库名;
alter table 表名engine=MyISAM;
通过修改/etc/my.cnf 配置文件,指定默认存储引擎并重启服务
vim /etc/my.cnf
[mysqld]
de fault-storage-engine=INNODB
systemctl restart mysql. service
注意:此方法只对修改了配置文件并重启mysq1服务后新创建的表有效,已经存在的表不会有变更
通过create table 创建表时指定存储引擎
use库名;
create table 表名(字段1数据类型,…) engine-MyISAM;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。