首页
学习
活动
专区
圈层
工具
发布

关于primary key和unique index的奇怪问题 (58天)

都已经drop了怎么index还没删除,我把脚本copy到本地,找了个测试环境试了下,脚本还是没有问题。 drop primary key的时候 index会自动删除。...我想了又想,创建primary key的时候会自动创建unique index.我想万一index不是unique的,被其他人手工创建的,那样是不是就不会随着primary key自动删除了。...我查了下Index的情况,结果index还是unique的。 这种情况貌似有些解释不清了,到底使我们的脚本有问题还是本来环境就有问题。 我大胆的假设了一下,假设环境本来有问题。...那会不会是先创建unique index,然后再创建primary key.找了个测试环境。...但是我还有个疑问,有没有地方去查 primary key和unique index之间的关联,如果unique index创建在先,然后创建PK,有没有地方去标示这种情况,要不删除PK时时怎么自动删除unique

1.4K120
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【实施工程师之家】——mysql四种索引PRIMARY(主键索引)、INDEX(一般索引)、UNIQUE(非空索引)、FULLTEXT(全文索引)应用

    mysql四种索引PRIMARY(主键索引)、INDEX(一般索引)、UNIQUE(非空索引)、FULLTEXT(全文索引)应用 目录 1)PRIMARY: 2)NORMAL: 3)UNIQUE: 4...)FULLTEXT: 索引不足之处 1)PRIMARY: 主键索引。...索引列唯一且不能为空;一张表只能有一个主键索引(主键索引通常在建表的时候就指定) 2)NORMAL: 普通索引。索引列没有任何限制; 3)UNIQUE: 唯一索引。...索引列的值必须是唯一的,但允许有空; 4)FULLTEXT: 全文搜索的索引。FULLTEXT 用于搜索很长一篇文章的时候,效果最好。用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以。...索引不足之处 (1)索引提高了查询的速度,但是降低了INSERT、UPDATE、DELETE的速度,因为在插入、修改、删除数据时,还要同时操作一下索引文件; (2)建立索引未见会占用一定的磁盘空间。

    97321

    MySQL中Explain的Extra字段值Using index和Using where;Using index和Using where以及Using index condition的区别

    或Using index condition,那么这四者有什么区别呢?...哪个检索的性能更好呢?         其实顾名思义,Extra是补充说明的意思,也就是说,Extra中的值补充说明了MySQL的搜索引擎(默认为InnoDB)对当前的select语句的执行计划。...Using index condition是MySQL 5.6中引入的一种新特性,叫做Index Condition Pushdown(ICP),是一种在存储引擎层使用索引过滤数据的一种优化方式。...这里的“下推” 是指将原来在server层进行的table filter中可以进行index filter的部分,在引擎层面使用index filter进行处理,不再需要回表进行table filter...执行计划extra中的using index 和 using where using index 的区别 7. https://www.cnblogs.com/fswhq/p/icp.html Index

    8.4K40

    听说Mysql你很豪横?-------------深入解析mysql数据库中的索引!

    在 MySQL中全文索引的索引类型为 FULLTEXT,全文索引可以在 ARCHAR或者TEXT类型的列上创建 单列索引与多列索引 索引可以是单列上创建的索引,也可以是在多列上创建的索引...不是指一个字段只能建立一个索引 而是每一字段对应的必须是唯一的 可查找的 跟身份证一样的 唯一索引可以为空 且可以多个NULL空 mysql> create unique index hi on...主键索引相当于unique+not null +自动增长auto_ increment primary 在一个表只能出现一次 复合主键 就是说单独的一个字段可以相同 但两个加一起不能相同 两个共同作为主键...Table: hello Non_unique: 0 Key_name: PRIMARY Seq_in_index: 1 Column_name: score...语法: create fulltext index 的名字> on tablename(列的列表); 例如: create fulltext index full_index_addr on IT_salary

    1.5K30

    MySQL常用语句

    一、前言   今天天气很好,大晴天,心情也好好的。就将MySQL常用的语句总结一下,记录在随笔里,也顺便分享分享。日后,这篇随笔我将会持续更新,作为我自己的MySQL语句大全。...UNIQUE        同上两个地方添加:1、UNIQUE  2、[CONSTRAINT ]  UNIQUE()        与主键的区别,两者同样要求唯一,但是UNIQUE可以是...且一个表中PRIMARY KEY只能是一个,UNIQUE可以存在多个。    ...注意:两个表之间有了外键的联系,不能直接删除主表,否则会出错!若必须要删除主表,可以先删除外键,再来删除主表。     ...,若有不足或者错误的地方请各位指出) 作者:那一叶随风 声明:本博客文章为原创,只代表本人在工作学习中某一时间内总结的观点或结论。

    96120

    Mysql索引

    类别 普通索引index :加速查找 唯一索引 主键索引:primary key :加速查找+约束(不为空且唯一) 唯一索引:unique:加速查找+约束 (唯一) 联合索引 primary...key(id,name):联合主键索引 unique(id,name):联合唯一索引 index(id,name):联合普通索引 4.全文索引fulltext :用于搜索很长一篇文章的时候,效果最好。...对于较大的数据集,将你的资料输入一个没有FULLTEXT索引的表中,然后创建索引,其速度比把资料输入现有FULLTEXT索引的速度更为快。...Non_unique 如果索引不能包括重复词,则为0。如果可以,则为1。 Key_name 索引的名称。 Seq_in_index 索引中的列序列号,从1开始。 Column_name 列名称。...Collation 列以什么方式存储在索引中。在MySQL中,有值‘A’(升序)或NULL(无分类)。 Cardinality 索引中唯一值的数目的估计值。

    2.3K10

    Mysql索引知识详谈

    table\_demo ADD UNIQUE INDEX (field\_1) ;ALTER TABLE table\_demo ADD FULLTEXT INDEX (field\_1) ;ALTER...TABLE table\_demo ADD INDEX (field\_1) ; UNIQUE:唯一索引 FULLTEXT:全文索引 不指定索引类型,则为普通索引 2....KEY和INDEX 本人查阅了一些资料,发现这个区别对用户来说,有点无聊,目前我们先记住一条:只有创建PRIMARY时,后面跟KEY,其它索引全部是跟INDEX ALTER TABLE `table_demo...Mysql从左到右的使用组合索引中的字段,一个查询可能只使用索引中的前部分字段,以刚刚创建的组合索引为例,一个查询可能会使用(field_1)或(field_1, field_2)或(field_1,...前一条规则,可以对我们的索引设计形成很好的指导:Mysql相当于把组合索引的前面的字段全部依次建立了索引,这样我们就没必要再对这些字段进行单一的创建索引,下图很好的演示了组合索引 [y6nd3afkha.png

    56620

    mysql操作命令梳理(1)-索引

    以下命令语句分别展示了如何创建主键索引(PRIMARY KEY),联合索引(UNIQUE)和普通索引(INDEX)的方法。...PRIMARY KEY 索引名 列名; mysql>CREATE INDEX 索引名 ON 表名 列名; mysql>CREATE UNIQUE INDEX 索引名 ON 表名 列名; 例如: mysql...如果没有创建PRIMARY KEY索引,但表具有一个或多个UNIQUE索引,则MySQL将删除第一个UNIQUE索引。 如果从表中删除某列,则索引会受影响。...): ALTER TABLE 表名 ADD UNIQUE 列名 INDEX(普通索引): ALTER TABLE 表名 ADD INDEX 索引名 列名 FULLTEXT(全文索引):...ALTER TABLE 表名 ADD FULLTEXT 列名 组合索引:ALTER TABLE 表名 ADD INDEX 索引名 (列名1,列名2, 列名3) Mysql各种索引区别: 普通索引:最基本的索引

    1.7K60

    MySql事务、索引和备份

    MySQL只有InnoDB和BDB数据引擎支持事务处理。 (2)事务的四个属性——ACID 原子性(Atomicity):事务中的指令是一个完整的操作,不可分割。...1.2 MySQL中的事务语法 (1)MySQL中的事务默认是自动提交的 SHOW VARIABLES LIKE 'autocommit';      #查看数据库自动提交设置 (2)可以通过设置AutoCommit...此外,索引还可以加速表和表之间的连接,实现表与表之间的参照完整性;使用分组和排序子句进行数据检索时,可以显著减少分组和排序的时间。...按索引的逻辑结构来划分,索引又可以分为:主键索引(PRIMARY KEY)、唯一索引(UNIQUE)、常规索引(INDEX)和全文索引(FULLTEXT)。...#主键索引也可在字段字义之后,如        #  PRIMARY KEY(`GradeID`)    ); (2)唯一索引(unique) 唯一键是避免同一个表中某数据列中的值重复,与主键不同只能有一个不同

    96920

    MySQL学习15_索引index

    MySQL索引的建立对MySQL的高效运行是很重要的。索引可以大大提高MySQL的查询速度。 比如:新华字典的目录页(索引)快速查找汉字;图书馆通过首字母可以快速定位相关书籍,加快查找速度。...索引分类 普通索引:key(字段1,字段2,…) 唯一索引:unique key(字段1,字段2,…) 主键索引:primary key(字段1) 只能有一个 全文索引:fulltext...(字段1) 组合索引:index(字段1,字段2,…) 外键约束 ---- 索引功能 索引是应用在MySQL查询语句的条件(where语句的条件) 索引也是一张表,保存了主键和索引字段...索引列的值必须唯一,但是允许有空值;如果是组合索引,则列值的组合必须唯一 创建索引 -- 创建索引 create unique index indexname on tablename(username...,只支持英文;默认查询的内容有空格 MyISAM支持全文索引 InnoDB在MySQL5.6后开始支持全文索引 显示索引信息 使用 SHOW INDEX 命令来列出表中的相关的索引信息。

    79510

    mysql索引类型 normal, unique, full text

    问题1:mysql索引类型normal,unique,full text的区别是什么?...FULLTEXT 用于搜索很长一篇文章的时候,效果最好。用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以。 总结,索引的类别由建立索引的字段内容特性来决定,通常normal最常见。...([...], index [IndexName] (列的列表)   2、唯一性索引:create unique index   alter ... add unique   主键:一种唯一性索引,必须指定为...primary key   3、全文索引:从3.23.23版开始支持全文索引和全文检索,FULLTEXT,   可以在char、varchar或text类型的列上创建。   ...mysql 索引分类 在数据库表中,对字段建立索引可以大大提高查询速度。通过善用这些索引,可以令 MySQL的查询和运行更加高效。索引是快速搜索的关键。

    4.2K20

    mysql5.7 索引

    问题1:mysql索引类型normal,unique,full text的区别是什么?...FULLTEXT 用于搜索很长一篇文章的时候,效果最好。用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以。 总结,索引的类别由建立索引的字段内容特性来决定,通常normal最常见。...TableName([...], index [IndexName] (列的列表)    2、唯一性索引:create unique index    alter ... add unique...    主键:一种唯一性索引,必须指定为primary key    3、全文索引:从3.23.23版开始支持全文索引和全文检索,FULLTEXT,    可以在char、varchar...mysql 索引分类  在数据库表中,对字段建立索引可以大大提高查询速度。通过善用这些索引,可以令 MySQL的查询和运行更加高效。索引是快速搜索的关键。

    2K30

    Mysql从入门到放弃(五)

    MySQL主要有四种索引 主键索引 primary key 唯一索引 unique 常规索引 index 全文索引 fulltext (1) 主键索引 主键索引是关系数据库中最常见的索引类型 主要作用是确定数据表里一条特定的数据记录的位置...搭配 创建 create testprim( id int unsigned primary key auto_increment ) 自增得步长 mysql的默认步长是居于会话session的...一个表中可以存在多个常规索引 但是要根据具体的情况去设置 某个字段有大量的查询的时候 (4) 唯一索引 唯一索引与主键索引一样 都可以防止创建重复的值 但是 不同之处在于 每个数据表中只能有一个主键索引...但是可以有多个唯一索引 使用unique对字段 定义唯一索引 注意: 如果在给表中字段插入值的情况报错 查看 字段是否设置了唯一索引 创建 mysql> create table testunique...email设置了索引名称为uniemail 其余索引名称为 默认字段名 (5) 全文索引 全文索引在mysql中是一个fulltext类型索引 但fulltext索引只能用于MyISAM表 并且只可以在

    87110
    领券