索引

索引相当于一本书的目录,在一个数据库或表有索引的情况下,会很便于查询数据,使查询更加效率,相对的也有缺点,不利于去修改,比较麻烦,有索引便于查询,那就意味着索引创建的越多越好么?然而并不是;索引越多,越不便于大量的修删改,反而会使数据库的性能下降;表里的数据如果大多数甚至只是是用来查询的话,那可以稍微的多创建几个索引以便于查询。

一、创建索引

&1 创建表 时 创建索引

create table create_index( id int primary key,name varchar() unique, age int,key (age) );

查看

&2给已有的表添加索引

create  index  test_index on students (name);

查看

注: 主键具有索引的功能, 所以设置索引不要在有主键的字段上

&删除索引

drop index  索引名字 on 表

二、测试时间

set profiling=1;#打开sql语句执行时间

show profiles;#查看sql执行时间

注: 真实环境下不要轻易去打开此功能,会使数据库的性能下降

1>插入数据

&准备数据(利用python 中 pymsql 模块实现 插入10万条数据)

2>执行脚本 ( 注, test2 数据库 与test3 表必须存在)(  第三方登录  事务默认自动打开,所以需要关闭  commit)

&

3>验证一下

十万条数据已经插入进去

#分页查看下

4>打开seq语句执行时间

5>测试

查询不带索引的字段

select  * from test3 where name='name=0';

show proiflies;

给他添加索引再查看

#查看

#查看查询使用时间

会发现  带索引明显 查询要快的多

外键

如果一个实体的某个字段指向另一个实体的主键,就称为外键。被指向的实体,称之为主实体(主表),也叫父实体(父表)。负责指向的实体,称之为从实体(从表),也叫子实体(子表)

对关系字段进行约束,当为从表中的关系字段填写值时,会到关联的主表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并报错

注:设置外键的时候,一般是将范围较小的那个设置成外键( 谁是儿子谁是外键)

一、添加外键

1>

alter  table students1 add  consteaint  外键名称   foreign key   表字段(范围大)    references 另一表字段(范围小)

2>插入一条数据测试

&测试

这是因为 classes(id) 为外键 关联着  students1 表, calsses 表里没有  id=3 所对应的数据, 所以不以为然的 students1 里也不能有clis(id)=3的数据 ,(外键约束)

&测试能否删除

外键约束不能删除,若想删除,则需要把students1 表里所有与 cls_id =1 对应的数据全部删除即

 

3>删除外键

4>添加支持级联删除的外键

&1测试

删除成功

Mariadb 索引及外键的更多相关文章

  1. 类型:Oracle;问题:oracle 查询表详细信息;结果:oracle查询表信息(索引,外键,列等)

    oracle查询表信息(索引,外键,列等) oracle中查询表的信息,包括表名,字段名,字段类型,主键,外键唯一性约束信息,索引信息查询SQL如下,希望对大家有所帮助: 1.查询出所有的用户表sel ...

  2. 003--PowerDesigner创建索引与外键

    PowerDesigner创建索引与外键 一.创建索引 双击Table->Columns->创建索引 Step1:双击Table Step2:选择Columns->创建索引 弹出如下 ...

  3. mariadb数据库(3)连接查询,视图,事务,索引,外键(优化)

    --创建学生表 create table students ( id int unsigned not null auto_increment primary key, name varchar(20 ...

  4. MariaDB第四章:视图,事务,索引,外键--小白博客

    视图 对于复杂的查询,在多个地方被使用,如果需求发生了改变,需要更改sql语句,则需要在多个地方进行修改,维护起来非常麻烦 假如因为某种需求,需要将user拆房表usera和表userb,该两张表的结 ...

  5. mariadb(第五章)视图、事物、索引、外键

    视图 对于复杂的查询,在多个地方被使用,如果需求发生了改变,需要更改sql语句,则需要在多个地方进行修改,维护起来非常麻烦 假如因为某种需求,需要将user拆房表usera和表userb,该两张表的结 ...

  6. mariadb数据库——关联、视图、事务、索引、外键

    1.关联 1)连接查询(内关联) inner join ... on 两个表连接查询 select * from students inner join classes 查询能够对应班级的学生以及班级 ...

  7. 详解MariaDB数据库的外键约束

    1.什么是外键约束 外键约束(foreign key)就是表与表之间的某种约定的关系,由于这种关系的存在,我们能够让表与表之间的数据,更加的完整,关连性更强. 关于数据表的完整性和关连性,可以举个例子 ...

  8. mysql基础之视图、事务、索引、外键

    一.视图 视图是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据.但是,视图并不在数据库中以存储的数据值集形式存在.行和列数据来自由定义视图的查询所引用的表,并且在引用 ...

  9. oracle查询表信息(索引,外键,列等)

    oracle中查询表的信息,包括表名,字段名,字段类型,主键,外键唯一性约束信息,索引信息查询SQL如下,希望对大家有所帮助:1.查询出所有的用户表 select * from user_tables ...

随机推荐

  1. 生产者-消费者中的缓冲区:BlockingQueue接口

    BlockingQueue接口使用场景相信大家对生产者-消费者模式不陌生,这个经典的多线程协作模式,最简单的描述就是生产者线程往内存缓冲区中提交任务,消费者线程从内存缓冲区里获取任务执行.在生产者-消 ...

  2. Sql Server cross apply和outer apply

    with result as( select t.str from( ' str union all ' str union all ' str union all ' str union all ' ...

  3. Hadoop架构模型

    1.hadoop 1.x架构模型:分布式文件存储系统:HDFSNameNode(主节点:管理元数据) secondaryNameNode(作用是合并元数据信息,辅助NameNode管理元数据信息)Da ...

  4. C# 使用MongoDB(学习记录)

    1)下载MongoDB https://www.mongodb.com/download-center#community 2)在D盘新建Data->db 3)执行命令 mongod --dbp ...

  5. mxnet.base.MXNetError: src/imperative/./imperative_utils.h:70: Check failed: inputs[i]->ctx().dev_mask() == ctx.dev_mask() (1 vs. 2)

    mxnet 训练错误: mxnet.base.MXNetError: [14:42:22] src/imperative/./imperative_utils.h:70: Check failed: ...

  6. buf.toString()

    buf.toString([encoding[, start[, end]]]) encoding {String} 默认:'utf8' start {Number} 默认:0 end {Number ...

  7. stark组件之删除页面内容搭建(八)

    删除页面没有太多的内容和功能 def del_view(self, request,pk,*args,**kwargs): """ 处理删除表弟 :param reque ...

  8. Python面试快问快答,理论要的就是速度与精准,Python面试题No2

    今天的面试题 第1题:python2和python3的range(100)的区别 range()函数的含义 range函数是一个用来创建算数级数序列的通用函数,返回一个[start, start + ...

  9. 如何用nfs命令烧写内核和文件系统(网络下载文件到nandflash)(未完)

    使用tftp下载烧写 a.设uboot里的ip地址 set ipaddr 192.168.1.17(uboot的ip设置成同网段) set serverip 192.168.1.5(电脑本机作为服务i ...

  10. python pip 安装一些包找不到的问题 Could not find a version that satisfies....

    有时我们使用下载python 自带的pip 安装一些工具包时,会报如下错误 找不到满意的版本,这时就是我们的pip可能需要升级了,所以使用 python -m pip install --upgrad ...