V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
013231
V2EX  ›  MySQL

爲包含1.5 * 10**8條記錄的表設置主鍵, 大約需要多長時間?

  •  
  •   013231 · 2012-04-23 13:01:32 +08:00 · 2792 次点击
    这是一个创建于 4602 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一張表, 只有一列, bigint型, 包含一億五千萬條記錄. 插入數據時爲保證插入速度, 沒有設置索引.
    插入完成後, 我使用
    ALTER TABLE hashes MODIFY hash BIGINT PRIMARY KEY;
    將此列設置爲主鍵. 可是已經30+小時了, 此命令仍未完成.
    機器是Linode 512, 完成此命令大約需要多長時間?
    5 条回复    1970-01-01 08:00:00 +08:00
    napoleonu
        1
    napoleonu  
       2012-04-24 19:38:23 +08:00
    看机器性能,你可以找个性能好的机器加好再传上去,特别是IO性能好。 Linode 512 有的玩了。
    road2stat
        2
    road2stat  
       2012-04-24 22:25:01 +08:00
    KDD Cup 2012 track2?
    013231
        3
    013231  
    OP
       2012-04-25 20:29:19 +08:00
    @napoleonu 在我的Mac mini上進行(2.4G Core2 Duo, 8 GB 1067 MHz DDR3, 320 GB SATA Disk), 1小時43分就完成了. 不知爲何Linode 512上如此的慢.
    @road2stat 不是.
    Livid
        4
    Livid  
    MOD
       2012-04-25 20:33:17 +08:00
    (8 * (1.5 * 10000 * 10000) ) / (1024*1024) = 1144.4091

    这张表不可能在 512MB 的机器上不吃交换运行的(你可以用 iostat 看一下),1.5 亿个 bigint 在内存里至少有 1.1G。
    013231
        5
    013231  
    OP
       2012-04-25 20:43:33 +08:00
    @Livid 這我知道, 可是沒想到如此的慢(40+小時還沒完成, 然後被我終止了).
    對了, 我在兩臺機器上使用的語句不同:
    Linode上是:
    ALTER TABLE hashes MODIFY hash BIGINT PRIMARY KEY;
    Mac mini上是:
    ALTER TABLE hashes ADD PRIMARY KEY (hash);
    這兩種語句的效率相同嗎?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3934 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:56 · PVG 08:56 · LAX 16:56 · JFK 19:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.