作者espeondoug (残雪)
看板Database
标题[SQL ] MySQL 大型资料表建立索引
时间Thu Apr 19 16:57:17 2018
资料库名称:MySQL
资料库版本:5.7
内容/问题描述:
我有数个笔数为10~40亿左右的资料表(MyISAM引擎),想用其中某1或2个varchar类型
的栏位(有重复)建立索引,目的是为了将资料表根据该栏位的名称汇出成多个小档案
想问说有没有什麽方法在现有的表上加快建立索引?(例如调my.ini里的参数之类的?)
试过几次create index,但看了建立的速度推测起码都要好几天...
以及,对於这样规模的资料表,是先汇入资料再建立索引、还是先建立索引再汇入资
料会比较快呢?(目前在建新的资料表时是采用後者顺序,但一样很慢)
新手发问,恳请协助,谢谢各位
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.109.73.92
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1524128240.A.490.html
1F:→ iFEELing: 先建索引再汇资料的话不是每笔INSERT都要去改INDEX吗... 04/19 22:20
2F:→ iFEELing: 你讲的蛮笼络的 基本上建索引就是整个爬过一次的行为 04/19 22:24
3F:→ iFEELing: 有多少资料就要爬多少资料 这个免不了的 04/19 22:24
4F:→ iFEELing: 只是有些刚好符合某种特定情况下有机会优化 04/19 22:25
5F:→ iFEELing: 笼统 ORZ 04/19 22:26
6F:→ iFEELing: 比如分区表,比如并行 这些都是在特定条件下可以用的招 04/19 22:34
7F:→ iFEELing: 可是用的时机不对就会让效能更惨 所以也不是都通用 04/19 22:35
8F:→ jeamie: 看到MyISAM就GG了,建议改成InnoDB,可以做Online DDL 04/19 23:05
9F:→ jeamie: create index的速度还满快的(但也要看硬体速度啦) 04/19 23:06
10F:→ espeondoug: 感谢两位大大回覆,一些必要的动作看来是不能省的 04/20 10:08
11F:→ espeondoug: 我会改成再试试先汇完资料後建立索引 04/20 10:09
12F:→ espeondoug: 这资料库是近期才交到我手上负责维护,当时已经是 04/20 10:12
13F:→ espeondoug: MyISAM了,大概不方便改@@ 04/20 10:13
14F:推 rockchangnew: 先汇再建 04/26 15:19