索引

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

一、创建索引

&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. bootstrap 整理

    form-control   输入框,独占一行,占满. form-group  增加下边距 <label> 字体会加粗,不是独占一行 .col-xs-  超小屏 .col-sm- 平板 . ...

  2. jQuery 收缩展开效果

    <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Conten ...

  3. 去除inline-block间距

    去除inline-block间距 通过display:inline-block设置元素为水平时,相邻元素之间会有几px的间距: html: <ul class="list"& ...

  4. KMP中next数组的理解与应用

    理解 1.next数组一直往前走 next数组一直往前走,得到的所有前缀也是当前主串的后缀,当然了,也是当前主串的前缀. 2.周期性字符串 1.周期性字符串$\Leftrightarrow n \,\ ...

  5. JavaSE-09 继承

    学习要点 继承的优点和实现 子类重写父类方法 继承下构造方法的执行过程 抽象类和抽象方法的使用 final修饰属性.方法和类 继承的优点和实现 宠物管理系统优化设计 宠物管理系统中的类有什么问题? 使 ...

  6. S​Q​L​_​S​e​r​v​e​r​_​2​0​0​8​定​期​自​动​备​份​详​细​图​解

    S​Q​L​_​S​e​r​v​e​r​_​2​0​0​8​定​期​自​动​备​份​详​细​图​解 设置自动数据库的定期备份计划. http://wenku.baidu.com/link?url=Tu ...

  7. Swing实现个人简历

    源码: import java.awt.Container;import java.awt.FlowLayout;import java.awt.Font; import javax.swing.*; ...

  8. jquery toggle()设置

    很多朋友对jquery toggle()比较熟练,甚至经常用到,而且对toggle的三个参数也比较了解$(selector).toggle(speed,callback,switch).但是当你设置$ ...

  9. BZOJ4873 LuoguP3749 寿司餐厅

    题面太长,请诸位自行品尝—>寿司餐厅 分析: 首先题目中给了限制条件,假如选了D(i,j)(i<j),那么也就选了D(i+1,j)和D(i,j-1)两个点. 于是我们一下就明白了,哦,最大 ...

  10. [Luogu] P4460 [CQOI2018]解锁屏幕

    题目背景 使用过Android 手机的同学一定对手势解锁屏幕不陌生.Android 的解锁屏幕由3X3 个点组成,手指在屏幕上画一条线,将其中一些点连接起来,即可构成一个解锁图案.如下面三个例子所示: ...