V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yggdrasil
V2EX  ›  PHP

求思路遇到项目的一些问题。php

  •  
  •   yggdrasil · 2016-06-27 10:26:27 +08:00 · 2758 次点击
    这是一个创建于 2857 天前的主题,其中的信息可能已经有所发展或是发生改变。

    批量名单导入

    一次 5 万条的数据导入,都需要入数据库。 (一行一个 QQ 号码,有 txt 与 excel 格式) 要考虑的问题有,如果导入的数据中在数据库有记录就做加分或者减分。 没有就新增到数据库中。  应该怎么操作或者实现? 或者解决的思路应该来...   
    
    
    个人的解决思路也只能一个一个对比数据库,有就加减。没有就新增。 这样可以?
    
    11 条回复    2016-06-27 12:59:44 +08:00
    nine
        1
    nine  
       2016-06-27 10:38:17 +08:00
    你的思路没错。
    5 万这么少,有问的功夫,写个逻辑都导完了。
    如果数据量大,嫌慢加个索引就好。
    我这边每天一千万条都是这么入库的
    fising
        2
    fising  
       2016-06-27 10:40:02 +08:00
    3-4 行 bash 搞定。。
    chuhemiao
        3
    chuhemiao  
       2016-06-27 10:40:59 +08:00
    php 脚本
    cdwyd
        4
    cdwyd  
       2016-06-27 10:41:24 +08:00 via Android
    才 5 万,直接按你的思路来也没多久吧。除非你数据库原来有很多数据
    yggdrasil
        5
    yggdrasil  
    OP
       2016-06-27 10:44:16 +08:00
    是一次导入 5 万,后面还有数据。 主要是如果数据库有记录的话就做加减,只能一个个对比。 这里怎么操作?
    realpg
        6
    realpg  
       2016-06-27 10:44:31 +08:00
    if mysql

    CREATE TABLE `qq` (
    `qq` BIGINT UNSIGNED NOT NULL ,
    `score` INT UNSIGNED NOT NULL ,
    PRIMARY KEY ( `qq` )
    ) ENGINE = INNODB;


    INSERT INTO `qq` (`qq`,`score`) VALUES (`{$qq}`,0) ON DUPLICATE KEY UPDATE `score` = `score` +1;
    realpg
        7
    realpg  
       2016-06-27 10:45:59 +08:00
    五万条数据 IO 好一点的 PC 机服务器也用不了一秒……
    Light3
        8
    Light3  
       2016-06-27 11:46:31 +08:00
    5W 阿 你就照瞎里写 没啥事。。
    kevinroot
        9
    kevinroot  
       2016-06-27 12:40:56 +08:00
    数据重复量大吗?先用 php 跑一遍把该加减都处理了,然后直接插数据库
    yggdrasil
        10
    yggdrasil  
    OP
       2016-06-27 12:49:02 +08:00
    数据量应该不会很大,思路有了些. 别学别想... 上面那个 SQL 不错学习了。
    programgou
        11
    programgou  
       2016-06-27 12:59:44 +08:00
    excel 转成 csv 应该速度还更加快一点
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1531 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 17:06 · PVG 01:06 · LAX 10:06 · JFK 13:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.