美文网首页
MySQL如何给千万级数据库表加索引

MySQL如何给千万级数据库表加索引

作者: pumpdev | 来源:发表于2023-08-03 11:15 被阅读0次

需求:MySQL给一个千万级数据表加索引

  • 普通办法,实测该办法会直接卡死
# 给data_table表添加一个名为index_sel的索引,索引字段包括`raise_time`, `entity_id`
ALTER TABLE `data_table` ADD INDEX `index_sel`(`raise_time`, `entity_id`);
  • 保险办法,先拷贝原表的结构作为一个新表暂时不拷贝数据,再在新表上添加索引,然后把原表的数据拷贝到新表,再将原表表名改为备份表,再把新表改为为原表的名字,最后测试没问题的话就可以删除备份表了
# 先拷贝原表的结构到新表,表名为:data_table_new
# 给新表上添加索引
ALTER TABLE `data_table_new` ADD INDEX `index_sel`(`raise_time`, `entity_id`);
# 给新表插入原表数据
insert into data_table_new select * from data_table;
# 将原表改为data_table_old
ALTER TABLE data_table RENAME TO data_table_bak;
# 将新表名改为原表
ALTER TABLE data_table_new RENAME TO data_table;
# 最后测试没问题再删除备份表
DROP TABLE data_table_bak;

相关文章

  • 数据库常用操作

    1、给mysql表加字段 2、给表加主键 3、给表加索引

  • sql优化

    参考:数据库SQL优化大总结之 百万级数据库优化方案如何优化MySQL千万级大表,我写了6000字的解读 --很棒...

  • MySQL分库分表要点

    一、分库分表的原因 MySQL单机能力有限 百万级表可以通过主从、读写分离、优化索引等方式解决性能问题 千万级表时...

  • mysql学习-20180117

    [需要更新] mysql学习 mysql 5.6 官方版本说加索引时,不会锁表,但是表加索引时,依然会存在2种情况...

  • Mysql Tuning Practice

    最近项目开发中,我负责给数据库加索引。Mysql提供了丰富的索引类型,主要是B树索引(前缀索引、复合索引),Has...

  • MySQL常用命令

    数据库表三部分组成 1)表结构2)表数据3)表索引 常用命令 关闭mysql 开启mysql 登录mysql 查看...

  • MySQL(4)应用优化

    MySQL应用优化 4.1-MySQL索引优化与设计 索引的作用 快速定位要查找的数据 数据库索引查找 全表扫描 ...

  • 聊聊Mysql索引查询技巧

    mysql的索引是日常开发中用到比较多的概念,对于千万级的表来说,能充分的利用索引,便能充分的提高查询效率。之前都...

  • elastcisearch5.1.1使用

    ---对应关系 elastcisearch mysql index(索引) 数据库 type(类型) 表 do...

  • 索引案例二:两表优化案例

    建表SQL LEFT JOIN 给左边表(class)加索引出现如下: 给由边表(book)加索引出现如下: RI...

网友评论

      本文标题:MySQL如何给千万级数据库表加索引

      本文链接:https://www.haomeiwen.com/subject/qldmpdtx.html