删除一张600万记录表的一个索引需要多长时间?
快速问答时间:
删除一张600万记录表的一个索引需要多长时间?
背景:
系统负载低,固态盘,目前应用没有针对该表的业务
需要多长时间?
需要多长时间,你是不是开始计算了。建一个索引大概需要五分钟,删一个索引是不是也需要五分钟呢?错,请看下面截图
是的,事实证明删除索引只花了0.06s
相关推荐
- 删除一张600万记录表的一个索引需要多长时间?
- MySQL_索引原理 如果未定义主键,MySQL取第一个唯一索引( 如果没有这样的列,InnoDB就自己产生一个这样的ID值,它有六个字节,而且是隐藏的,使其作为聚簇索引。 由于实际的数据页只能按照一棵B 除此之外还有全文索引,即FULLTEXT 其他的如空间索引SPATIAL,了解即可,几乎不用 不同的存储引擎支持的索引类型也不一样 方法二:CREATE在已存在的表上创建索引 方法三: 删除索引: 方式二 方式三 查看 现在我们得出一个结论:为区分度低的字段建立索引,索引树的高度会很高,然而这具体会带来什么影响呢??? 2:如果条件正好是name= 排序条件为索引,则select字段必须也是索引字段,否则无法命中 可以看到possible_keys在这里有两个索引可以用,分别是单个索引userid与联合索引userid_2,但是优化器最终选择了使用的key是userid因为该索引的叶子节点包含单个键值,所以理论上一个页能存放的记录应该更多 接着假定要取出userid为1的最近3次的购买记录,用的
- 数据库中的索引 除此之外还有全文索引,即FULLTEXT 其他的如空间索引SPATIAL,了解即可,几乎不用 我们可以在创建上述索引的时候,为其指定索引类型,分两类 不同的存储引擎支持的索引类型也不一样 方式一 方式二 方式三 查看 1. 准备表 2. 创建存储过程,实现批量插入记录 3. 查看存储过程 4. 调用存储过程 无索引:mysql根本就不知道到底是否存在id等于333333333的记录,只能把数据表从头到尾扫描一遍,此时有多少个磁盘块就需要进行多少IO操作,所以查询速度很慢 没有为name添加索引,查询速度很慢 添加索引后,查询速度变快 查询速度变慢,因为无法从树的某个位置得到一个明确的范围,需要类似全表扫描. id字段有索引所以查询速度很快 索引字段id参与了计算,无法拿到一个明确的值去索引树中查找,每次都得临时计算以下,所以速度变慢 排序条件为索引,则select字段必须也是索引字段,否则无法命中 原子操作 出现异常,回滚到初始状态 我们要做的是检测这几个sql语句是否异常,没有异
- MySQL表的定期分析检查优化 show table status mysql执行大批量删除 optimize、Analyze、check、repair维护操作 生成乱序的id 查询和索引 索引比表还大就不需要建立索引了吗 Char和varchar如何选择 多个TimeStamp设置默认值 查询数据表有多少行,多少容量 AUTO_INCREMENT的设置 mysql的表示时间的字段用什么类型 myisam和innodb支持外键 对一个字段加减语句
- Oracle系列之触发器 创建一个触发器,使其可以修改tb_Department表的deptno。 建立一个语句级触发器,防止在非工作时间对于某个表的更新,插入和删除 在tb_Department表中加入一个列,用于统计部门的总工资,在tb_Employee表上建立一个行级触发器,用于同步这个数据 使用序列和触发器,给流水号列自动添加流水号。 在一个多事件的触发器中,使用条件谓词,对插入,删除,更新进行不同的处理。 建立一个审计表,把某个表更新,插入,删除的数据,通过行级触发器,记录到审计表,需要记录更新前后数据的变化,操作的类型和时间。
- 大表,某列无索引,先需要查询该列,删除符合条件的记录,大约占40%数据量,请问有何更好的方案吗?
- MySQL_索引原理 如果未定义主键,MySQL取第一个唯一索引(unique)而且只含非空列(NOT NULL)作为主键,InnoDB使用它作为聚簇索引。 如果没有这样的列,InnoDB就自己产生一个这样的ID值,它有六个字节,而且是隐藏的,使其作为聚簇索引。 由于实际的数据页只能按照一棵B+树进行排序,因此每张表只能拥有一个聚集索引。在多数情况下,查询优化器倾向于采用聚集索引。因为聚集索引能够在B+树索引的叶子节点上直接找到数据。此外由于定义了数据的逻辑顺序,聚集索引能够特别快地访问针对范围值得查询。 除此之外还有全文索引,即FULLTEXT 其他的如空间索引SPATIAL,了解即可,几乎不用 不同的存储引擎支持的索引类型也不一样 方法二:CREATE在已存在的表上创建索引 方法三:ALTER TABLE在已存在的表上创建索引 删除索引:DROP INDEX 索引名 ON 表名字; 方式二 方式三 查看 2. 创建存储过程,实现批量插入记录 3. 查看存储过程 4. 调用存储过程 2. 在表中
- mysql 索引 InnoDB存储引擎表是索引组织表,即表中数据按照主键顺序存放。 如果未定义主键,MySQL取第一个唯一索引(unique)而且只含非空列(NOT NULL)作为主键,InnoDB使用它作为聚簇索引。 如果没有这样的列,InnoDB就自己产生一个这样的ID值,它有六个字节,而且是隐藏的,使其作为聚簇索引。 由于实际的数据页只能按照一棵B+树进行排序,因此每张表只能拥有一个聚集索引。 1. 索引的功能就是加速查找 2. mysql中的primary key,unique,联合唯一也都是索引,这些索引除了加速查找以外,还有约束的功能 我们可以在创建上述索引的时候,为其指定索引类型,分两类 不同的存储引擎支持的索引类型也不一样 方法一:创建表时 方法二:CREATE在已存在的表上创建索引 方法三:ALTER TABLE在已存在的表上创建索引 删除索引:DROP INDEX 索引名 ON 表名字; 无索引:mysql根本就不知道到底是否存在id等于333333333的记录,只能把数据表从
- java中的进制与操作符
- MSIL实用指南-位运算