mysql 键 索引_五、MySQL索引和键
MySQL索引和键
(不同的索引有不同功能 ,不同的约束方式,不同的使用规则)
优点:对一张表来说,索引就像一本书的目录,能够加快查询速度
缺点:占用物理存储空间 (索引信息存储在表对应的文件里)
会降低插入、更新表记录的速度(insert delete update)
1.索引的类型
普通索引:index
唯一索引:unique
全文索引:fulltext
2.各个索引的说明
(1).index 普通索引
一个表中可以有多个INDEX字段
把经常做查询条件的字段设置为INDEX字段
INDEX字段的KEY标志是MUL
对应的字段值允许有重复
样例1:
建表时设置索引字段。(默认索引字与字段名相同)
create table tea(
name char(10) not null,
age int(3) not null,
index(name)
);
样例2:
把已有表里的字段设置为index字段。
create index 索引名 on 表名(字段名);
create index name on stu_info(name);
create index name on stu_info(name,sex);
删除指定表的索引字段
drop index 索引名 on 表名;
drop index name on stu_info;
注:index使用BTREE 算法 (二叉树算法)
查看表的索引信息:show index from stu_info;
(2)unique 唯一索引
字段值不允许有重复,UNIQUE字段的值允许为NULL,【当将其修改为不允许为NULL,则此字段限制与主键相同】
一个表中可以有多个UNIQUE字段
UNIQUE字段的KEY标志是UNI
样例:
create table tea23(
id int(3),
name char(3),
unique(id)
);
create unique index stu_id on stu_info(stu_id);
3.键
主 键:primary key
外 键:foreign key
(1). primary key
一个表中只能有一个PRIMARY字段
字段值不允许有重复,不允许为null
主键字段的KEY标志是PRI
如果有多个字段都作为PRIMARY KEY,称为复合主键,必须在建表时一起创建
通常与 AUTO_INCREMENT 连用 (字段的值自动增长 +)
把能唯一定位一条记录的字段设置为主键字段
样例:
create table baitao(lf int(3),primary key(lf));
alter table stu_info add primary key(id)
alter table 表名 drop primary key;
(2).foreign key * 外 键
字段类型要一致
表的存储引擎必须是innodb
被参考字段必须是索引类型中的一种。
FOREIGN KEY(字段名) References 表B(字段名) ON UPDATE CASCADE
ON DELETE CASCADE
样例:
create table yg_info(yg_id int(3) primary key auto_increment,name varchar(15) not null,index(name))engine=innodb;
create table gz_tab2(
id int(3) primary key auto_increment,
name varchar(15) not null,
gz_id int(3) not null,
gz float(7,2),
FOREIGN KEY(gz_id) References yg_info(yg_id)
on update cascade on delete cascade
)engine=innodb;
insert into yg_info(name)values("jim");
insert into yg_info(name)values("tom");
insert into gz_tab(name,gz_id,gz)values("jim",1,20000);
insert into gz_tab(name,gz_id,gz)values("tom",2,20000);
update yg_info set yg_id=20 where name="tom";
delete from yg_info where yg_id=20;
(3).primary key 复合主键
(主键字段的值 不可以同时相同 )
ip ser_name port status
1.1.1.1 vsftpd 21 deny
1.1.1.1 sshd 22 allow
2.2.2.2 sshd 22 allow
1.1.1.10 sshd 22 deny
create table sertab(
ip varchar(15),
ser_name varchar(15),
port int(3),
status enum("deny","allow") default "deny",
primary key(ip,port)
);
本文出自 “刘福” 博客,请务必保留此出处http://liufu1103.blog.51cto.com/9120722/1656829
五、MySQL索引和键
标签:mysql索引和键
本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉
本文系统来源:http://liufu1103.blog.51cto.com/9120722/1656829
mysql 键 索引_五、MySQL索引和键相关推荐
- MySQL学习笔记_关于MySQL的字符类型VARCHAR长度知识总结
MySQL学习笔记_关于MySQL的字符类型VARCHAR长度知识总结 一.VARCHAR存储和行长度限制 1.VARCHAR(N)中,N指的是字符的长度,VARCHAR类型最大支持65535,指的是 ...
- 整型索引查询mysql是不是快点_图解Mysql索引的数据结构!看不懂你来找我
听说微信搜索<Java鱼仔>会变更强哦! 本文收录于JavaStarter ,里面有我完整的Java系列文章,学习或面试都可以看看哦 (一)关于索引 索引是帮助Mysql更加高效获取数据的 ...
- rds mysql 视图 索引_数据库 视图 索引
SQL2K数据库开发二十二之索引操作在视图上创建索引 1.在企业管理器中,右击要创建索引的视图,在弹出的菜单中选择"设计视图"命令进入视图设计器. 2.在视图设计器中显示了视图所包 ...
- mysql 栅格数据结构_图解Mysql索引的数据结构!看不懂你来找我
(一)关于索引 索引是帮助Mysql更加高效获取数据的一种数据结构,索引的使用很简单,但是如果不能理解索引底层的数据结构的话,就谈不上去优化索引了. (二)B+树 Mysql的索引用的是B+树,他具有 ...
- mysql5.6 函数索引_聊聊MySQL中的索引
关于MySQL中的索引使用 索引是数据库优化中最常用也是最重要的手段之一,通过索引通常可以帮助用户解决大多数的SQL性能问题. 索引的存储分类: 1.B-Tree索引:最常见的索引类型,大部分引擎都支 ...
- mysql判断是否建立索引_判断mysql中列是否要添加索引的标准
最近再看mysql技术内部+innoDb存储引擎一书,书中第五章-索引与算法中讲到 查看表的索引信息中的一些参数含义,特作记录 show index from table_name ## 查看该表的 ...
- mysql为什么使用b 树作为索引_为什么Mysql用B+树作为索引
该篇文章已经投稿给公众号hollis 1.什么是索引 索引这个词,相信大多数人已经相当熟悉了.不过为了文章的完整性,这里再啰嗦一下.索引是一种数据结构,用于帮助我们在大量数据中快速定位到我们想要查找的 ...
- 覆盖索引与联合索引_浅析MySQL的索引覆盖和索引下推
写在前面 在MySQL数据库中,索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点,索引就是为了提高数据查询的效率.今天我们来聊聊在MySQL索引优化中两种常见的方式,索引覆盖和 ...
- mysql = 索引_深入MySQL索引
MySQL索引作为数据库优化的常用手段之一在项目优化中经常会被用到, 但是如何建立高效索引,有效的使用索引以及索引优化的背后到底是什么原理?这次我们深入数据库索引,从索引的数据结构开始说起. 索引原理 ...
- mysql手机客户端_图解MySQL索引--B-Tree(B+Tree)
看了很多关于索引的博客,讲的大同小异.但是始终没有让我明白关于索引的一些概念,如B-Tree索引,Hash索引,唯一索引....或许有很多人和我一样,没搞清楚概念就开始研究B-Tree,B+Tree等 ...
最新文章
- Linux下面如何运行.sh文件
- Android 关于Edittext输入框光标焦点无法及时定位解决办法.
- 用平方映射理解tanh
- 2021年春季学期期末统.考试 公司概论 试题
- linux 终端 朗读,使Linux终端朗读文字的小技巧分享
- 3.5链表----链表中元素的删除(只删除一个元素情况)
- C语言,椰果数量问题,计算最少的椰果数
- 受疫情影响:中国智能手机市场Q1出货量下滑严重
- 模拟线性调制系统的仿真
- 解决pip2安装不成功的问题
- 51nod 1050循环数组最大字段和
- 数据挖掘-二手车价格预测 Task02:数据分析
- 手动绘制DataTable
- Delphi Web前端开发教程(7):基于TMS WEB Core框架
- 萌新卷妹带你逃出算法无名岛第五站
- dva的用法_dva基本用法
- 脱水冷冻干燥宠物食品的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- NLP中的attention机制总结
- NRF51822裸机TIMER学习笔记
- redis 内存分析工具 `rma4go`
热门文章
- 安装tensorflow时候报错ImportError: DLL load failed: 找不到指定的模块。Failed to load the native TensorFlow runtime.
- EMNLP 2017 北京论文报告会笔记
- 最优化方法:拉格朗日乘数法(转)
- 阿里云容器Kubernetes监控(五) - 离线存储与归档Kubernetes事件
- java中NULL与 的区别
- 这么多年都白学了,原来是方法没有用对
- 《从零开始学Swift》学习笔记(Day 62)——Core Foundation框架之内存托管对象与非托管对象...
- CentOS7/RHEL7 systemd详解
- 【XenApp 6.5体验】SmartAuditor 1.3 Policy Console策略控制台打开报401错误的解决办法...
- 内置函数、匿名函数、递归、二分法