PHPでのOracle利用(12)

正式な(というのも可笑しな話)テストデータをDBに突っ込んだ
50830件の空間データ。全件インサートに一時間以上掛かった…
やはりMySQLが高速DBと言われているのは理解していたが、これほど速度に差異があるとは予想外だった。ホストサイドのCPUが上昇したまま帰らない
空間検索やインサート文にWKTの変換を入れるのはこの分だと止めたほうがよさそうだ。…楽なのに(怠
実行結果として成功数と要求数を出力させたのだが、50830件に対して15件のインサート失敗が見られる。失敗した情報の詳細を出力はさせてなかったので、この15件のデータ特定が…ッッ
また一時間掛けてインサートするのもなんなので現状のインサートスクリプトを改造して補完スクリプトを作る。ああ…またクエリ実行して待ちぼうけorz

待っている間に次の作業の準備とかも完成してしまった
次の作業は、DBから空間検索で返された情報を一つのJSONにすること
なお、DBから受け取ったデータはWKT形式のString
流れとしてはこんな感じ

DBへ空間検索
↓
習得したWKTを文字列分割(空間の形式と座標群)
↓
分割した情報からJSONを組み立てる

MySQLPostGISで習得するWKTと比べると、OracleWKTは半角空白が所々挿入されているのが気になる。場合によっては半角除去を行わなければならないのかもしれない

スクリプトを載せたいが、流石に200行近い物を載せるのは…


・追記
インサートが時間掛かってた原因が判明
索引を作成したままインサート掛けてました
検索対象になるテーブルに対して、インサートシステムを実装する場合はそのつど索引を削除して再設定が必要なのか…
データ量多いほど索引は作成に時間掛かるし(あたりまえ)動的なシステムなは向かない仕様だな…

・更に追記
索引削除してインサートしても、一時間以上の消費
考えられるとすればエントリーの問題か?
SQLServerでは9万件に索引付けで6時間かかった…とぼやいていた言葉を聴いたが、これが限界なのだろうか
だとしたら、MySQLの高速性が伺える。後、PostgreSQLもある程度早いのも