初歩的な質問で申し訳ありませんが
170MBほどのJSONファイルをMySQLに落とし込もうと
PHPで簡単なスクリプトを作ったのですが
まる一日以上たってもまだ完了しません。
手を付けてしまったのはどうしようもないのですが
json形式のデータをDBに手早くインポートする方法は無いものでしょうか?
追記、MySQLに限らず、jsonの取り扱いに比較的やりやすいDB等ありましたら知りたいです
再度追記
jsonのカラムは2つだけ、いずれもvarchar(255)にしてあります。
phpを載せておきます
php
1<?php 2ini_set("max_execution_time",0); 3$jsonArray=json_decode(file_get_contents("./largeData.json")); 4 5try{ 6 $PDO=new PDO("mysql:host=192.168.1.7;dbname=jsonTest","dbUser","password"); 7} 8catch(PDOException $e){ 9 print "PDO connect error".$e->getMessage(); 10 exit(); 11} 12$string="DELETE FROM t000_jsonTable"; 13$stmt=$PDO->query($string); 14//print "<pre>"; 15//print_r($jsonArray); 16//print "</pre>"; 17$i=0; 18$string="INSERT INTO t000_jsonTable (name,suuji) VALUES( :key , :value )"; 19$stmt=$PDO->prepare($string); 20foreach($jsonArray AS $key => $value){ 21 $i++; 22 $stmt->bindValue(":key",$key); 23 $stmt->bindValue(":value",$value); 24 $stmt->execute(); 25 if(!$stmt){ 26 print "insert失敗<br>\r\n"; 27 print $string; 28 break; 29 } 30 print "insert完了".$key.":".$value."<br>\r\n"; 31} 32?>
jsonファイルの頭部分も載せておきます
json
1{"\u674e\u6210\u6d69": 13.881965678750785, "\u30d6\u30b9\u30c6\u30fc\u30ed\u30fb\u30c7\u30fb\u30d5\u30a3\u30b9\u30c6\u30a6\u30b9": 14.57511285931073, "170698": 14.57511285931073, "NLWW": 14.57511285931073, "\u3083\u304f\u3089\u304f\u3054\u3089\u3044\u3076": 14.57511285931073, "\u30af\u30ec\u30a2\u30a6\u30a7\u30eb\u30e9\u30f3\u30c8": 14.57511285931073, "Yelorna": 14.57511285931073, 2以下延々と続く
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/22 04:29
2017/02/22 05:15