質問 > その他 > データベースの重複(古いデータが残っている?) |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
komatta |
投稿日時: 2009/7/23 18:50
対応状況: −−−
|
半人前 登録日: 2009/6/2 居住地: 投稿: 29 |
データベースの重複(古いデータが残っている?) 管理画面からは消した商品データが、データベース上では残っているということはあり得るのでしょうか?
商品登録をCSVデータのアップロードによって行っています。更新時には一旦商品データを全て削除しています。 もしありうるとしたら、どうやって確かめれば良いのでしょうか?どなたかご教授お願い致します。 使用環境 EC-CUBEバージョン 2.1.2 PHPバージョン PHP 4.3.9 DBバージョン MySQL 5.0.45 |
seasoft |
投稿日時: 2009/7/23 22:32
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: データベースの重複(古いデータが残っている?) 「更新時には一旦商品データを全て削除しています。」というのが何をしたのか分かりませんが、DB上にはレコードが存在していて、削除フラグ(dtb_products.del_flg)が立っているという話かな?
こういった削除手法を「論理削除」とか呼んだりします。
|
tao_s |
投稿日時: 2009/7/24 6:35
対応状況: −−−
|
仙人 登録日: 2008/8/20 居住地: 東京 投稿: 799 |
Re: データベースの重複(古いデータが残っている?) EC-CUBEの管理画面から商品を削除したのであれば、seasoftさんの言う通りデータベースにレコードは残っています。
削除フラグが立っていて、単純に画面上に表示されないだけです。
|
komatta |
投稿日時: 2009/7/24 19:18
対応状況: −−−
|
半人前 登録日: 2009/6/2 居住地: 投稿: 29 |
Re: データベースの重複(古いデータが残っている?) 引用:
ご返信有難うございます。 一旦商品データを全て削除した、というのは 管理画面の「パラメータ設定」で、「ADMIN_MODE」の項目の値を「0」から「1」に変更。「商品マスタ」で全商品を検索し、検索結果を全て削除した。 という作業をいたしました。 これでは削除できていないのでしょうか? もし出来ていないとしたら、どうすれば商品データを削除できるのでしょうか? |
pantacle |
投稿日時: 2009/7/24 19:27
対応状況: −−−
|
長老 登録日: 2009/6/29 居住地: 富山 投稿: 242 |
Re: データベースの重複(古いデータが残っている?) > もし出来ていないとしたら、どうすれば商品データを削除できるのでしょうか?
DBから直接削除する必要があります。
|
AMUAMU |
投稿日時: 2009/7/24 22:18
対応状況: −−−
|
神 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: データベースの重複(古いデータが残っている?) コード未確認ですがDBから削除すると、再注文機能等に影響がありそうな気がします
どうしても物理的に削除したい場合は、mahalo_cさんの言うとおりDB内のテーブルに対しての直接DELETEが基本的な方法となる思います。 CSVアップロード等では削除出来ません。
|
seasoft |
投稿日時: 2009/7/24 23:25
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: データベースの重複(古いデータが残っている?) 引用:
それ以前に履歴あたりでも誤動作があったかも。 過去スレでも話題に上がった記憶があります。 基本的には、過去の不要となった注文履歴などを期間単位などで消しこむ(物理削除)などして、外部テーブルからの参照が無い商品を物理削除するようなメンテナンスをする必要があるかも。 (注文履歴は冗長情報を持っているので、工夫次第ではなんとかできそうですが、それ相応の改修が必要な予感がします。)
|
komatta |
投稿日時: 2009/7/25 15:49
対応状況: −−−
|
半人前 登録日: 2009/6/2 居住地: 投稿: 29 |
Re: データベースの重複(古いデータが残っている?) 皆様ありがとうございます。
直接DBを消すと可能けど、それをすると誤動作を起こす危険性があるのですね。 1点教えていただきたいのですが、もしDBから商品を消さずに放置した場合、検索のスピードが極端に遅くなってしまったりしますでしょうか? 現在管理画面では300点余の商品を登録していますが、CSVで何度も登録しなおしているので、管理画面からは見えていないだけで数千点の商品データがDBには存在しているようです。 もし放置することによって遅くなったり、他にデメリットが無いのであれば触るのは避けたいと思っています。 |
ramrun |
投稿日時: 2009/7/25 20:20
対応状況: −−−
|
仙人 登録日: 2006/11/3 居住地: 投稿: 789 |
Re: データベースの重複(古いデータが残っている?) すでに運用中のサイトなのか、まだ準備中なのかでも違ってきます。
↓はテストデータ生成スクリプトについてのスレですが、参照テーブルなど多少参考になるかと。 ・テストデータ生成スクリプトについて 詳細まで調べたことはないのですが、過去にお客が購入した商品を消すと、マイページの購入履歴の商品へのリンクがリンク切れになります。 |
AMUAMU |
投稿日時: 2009/7/25 23:25
対応状況: −−−
|
神 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: データベースの重複(古いデータが残っている?) 引用:
1点教えていただきたいのですが、もしDBから商品を消さずに放置した場合、検索のスピードが極端に遅くなってしまったりしますでしょうか? 速度面は環境や様々な条件によるので一概には言えませんが一般論としてですが、速度面は得意なので答えますと・・ 結論から言うと 極端ではないですがデータが増える以上、遅くなる可能性はありますので慎重な運用が必要かと思います。 細かい話になりますがMySQL5.0系をお使いとのことなので、del_flgによるフィルタ(論理削除)はDB内のSQL構文解析時にはかなり初期にフィルタされる条件文になりやすいと思います。こういうフィルタはMySQLは得意なほうなので、速度面への影響は比較的限定的になるかと思います。 (postgreSQLですとシンプルなフィルタもクエリ構文解析上、後回しになる場合もあります。バージョンによっては、そこまで速度ペナルティ少ないですが、メモリが少なかったりする場合とか遅いかも) ということで、現在速度面に不満を抱えていないのであれば、気にしないで良いのは実情です。 速度面に不安を抱えた段階で考えても良いかと思います。 CSVをメインでメンテナンスするのであれば、一回商品データを全件でダウンロードして、そのCSVを修正する形で追記や修正、上書きする感じで運用するほうが良いとは思います。 単純に考えてもデータが増えれば少なからず重くなるのは自明の理ですけどね。
|
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |