我想知道索引我的主列(“URL”)的进度,该列大约有 100 万行,如果它已完成或仍在进行中。我想在内存中运行索引以减少硬盘的IO,更重要的是我想加快进程不超过等待10分钟,因为我需要每天删除所有数据并插入新数据。
Innodb_buffer_pool_size = 3G
Mysql mytable结构 URL(主要)255Varchar 文件名200Varchar
mytable 1,065,380行 InnoDB latin1_swedish_ci 1 GiB
Space usage
Data 404 MiB
Index 660 MiB
Total 1 GiB
Row Statistics
Format dynamic
Collation latin1_swedish_ci
Creation Nov 18, 2017 at 02:35 PM
最佳答案
你有多少内存?对于 3G 的 buffer_pool,我希望你至少有 6GB 的 RAM。如果不是,则 buffer_pool 配置得太大,您可能正在进行交换。这是一个严重的性能 killer 。
如果您已有PRIMARY KEY(URL)
,则没有理由添加INDEX(URL)
。 PK 已经是一个索引,并且UNIQUE
。
您希望加速什么查询?
关于mysql索引状态和内存中运行索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47362371/