MySQL索引分类,语法及常见存储引擎

MySqL索引

(1)索引的分类
    单值索引:即一个索引只包含单个列,一个表可以有多个单列索引 唯一索引:索引列的值必须唯一,但允许有空值 复合索引:即一个索引包含多个列
(2)索引的语法
    索引的创建 create index idx_city_name on city(city_name) 查看索引 show index from cityG 索引的删除 drop index idx_city_name on city(tableName) ALTER命令 alter table tb_name add primary key(column_list) 该语句添加一个主键,意味着索引值必须是唯一的,且不能为null alter table tb_name add uinque index_name(column_list) 该语句创建索引的值必须是唯一的(除了null外,null可能会出现多次) alter table tb_name add index index_name(column_list) 添加普通索引,索引值可以出现多次 alter table tb_name add fulltext index_name(column_list) 该语句指定了索引为FULLTEXT,用于全文索引

MySql存储引擎

(1)存储引擎的概述

MySQL有一个存储引擎的概念,针对不同的存储需求可以选则最优的存储引擎

存储引擎就是存储数据,建立索引,更新查询数据等技术的实现方式,存储引擎是基于表的,而不是基于库的

Oracle,SqlServer等数据只有一种存储引擎,Mysql提供了多种存储引擎,可以根据需要使用相应的引擎

MySQL支持的存储引擎包括 InnoDB ,BDB,MEMORY,MyISAM等,其中InnoDB和BDB提供事务安全表,其他是非事务安全表

可以通过下面语句查询当前数据库支持的存储引擎

show engines
(3)MySQL中常用存储引擎的特点
    InnoDB MySQL默认的存储引擎,支持事务,行锁(适合高并发),支持外键(是MySQL的存储引擎中唯一支持外键) MyISAM MySQL5.5前默认的存储引擎,不支持事务(访问速度比较快,用于对事务的完整性不做要求也可容忍数据的少量丢失),表锁,不支持外键 MEMORY 该存储引擎将表的数据存放在内存中,每个MEMORY表实际对应一个磁盘文件,格式是.frm,该文件只存储表的结构,其数据文件都是存储在内存中,有利于数据的快速处理,MEMORY类型的表访问速度特别快,并且默认使用HASH索引,且服务一旦关闭,表中的数据就会丢失
经验分享 程序员 微信小程序 职场和发展