商品マスターが動かなくなってしまった
-
投稿者投稿
-
2011年2月14日 12:39 PM #50259saijo参加者
wordpressのバージョン3.0.3
welcartのバージョン0.9.1
MySQL5.1.47、PHP5.2.14
確認ブラウザFirefox
サーバーiCLUSTA(i-02)
こんにちは。
いつもお世話になっております。
商品マスターにて商品登録(エクセル一括登録)をしていた所、エラーが出てしまい、商品マスターのページがまったく動かなくなってしまいました。
ちなみに登録できなくなった時の商品件数は400点程度の時です。
いろいろと調べた所、どうやらデータベース(SQL)の設定をいじると直るかもしれない様ですが、お恥ずかしいながら、SQLに関しての知識があまり無いので困っています。
将来的に商品数を数千点まで増やそうと思っているのですが、welcartでは最大何点くらいまで登録可能でしょうか?
以下出力されたエラーです。
WordPress database error: [The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay]
SELECT mc.meta_value AS item_code, mn.meta_value AS item_name, meta.meta_key AS sku_key, meta.meta_value AS sku_value, te.term_id AS category, post.post_status, CASE post.post_status WHEN ‘publish’ THEN ‘公開済み’ WHEN ‘future’ THEN ‘予約済み’ WHEN ‘draft’ THEN ‘下書き’ WHEN ‘pending’ THEN ‘レビュー待ち’ WHEN ‘trash’ THEN ‘ゴミ箱’ ELSE ‘非公開’ END AS display_status, post.post_type, post.post_mime_type, post.ID FROM wp_posts AS post LEFT JOIN wp_postmeta AS mc ON post.ID = mc.post_id AND mc.meta_key = ‘_itemCode’ LEFT JOIN wp_postmeta AS mn ON post.ID = mn.post_id AND mn.meta_key = ‘_itemName’ LEFT JOIN wp_postmeta AS meta ON post.ID = meta.post_id AND SUBSTRING(meta.meta_key, 1, 6) = ‘_isku_’ LEFT JOIN wp_term_relationships AS tr ON tr.object_id = post.ID LEFT JOIN wp_term_taxonomy AS tt ON tt.term_taxonomy_id = tr.term_taxonomy_id LEFT JOIN wp_terms AS te ON te.term_id = tt.term_id WHERE post.post_mime_type = ‘item’ AND post.post_type = ‘post’ AND post.post_status <> ‘trash’ GROUP BY post.ID ORDER BY post.ID DESC
2011年2月15日 2:42 AM #61499nanbuキーマスターこんにちは。
このエラーは仰る通りMySQL の設定によるものですが、もう少しクエリを簡素化できないか検討してみたいと思います。
Welcart は約5,000までの登録であれば使用できる事を確認しています。もちろんサーバーの処理能力により前後しますが、この数を越えると結構重くなってきます。
一括登録やデータ出力には時間がかかりますのでタイムアウトを起こす可能性があります。データ数が多い場合は1000点ずつ分けて登録されるのが良いと思います。
2011年2月15日 7:19 AM #61500saijo参加者ありがとうございます。
商品数が5000点ほど登録可能と聞いて安心しました。
やはりMYSQLなんですね…。
サーバーの情報を調べてみたら、SQL_MAX_JOIN_SIZEが500000となっていました。
この場合、SQL_MAX_JOIN_SIZEを上げるかSQL_BIG_SELECTSをONにするか ということになると思うのですが、どちらの方が好ましいのでしょうか?あと、私のSQLの知識が乏しく、見当違いな質問かもしれませんが、Wordpress(welcart)側でSQL_MAX_JOIN_SIZEやSQL_BIG_SELECTSをphpでいじる事は可能でしょうか?
2011年2月16日 12:28 AM #61501nanbuキーマスター可能です。
usc-e-shop/functions/function.php 内の関数usces_item_uploadcsv() の、global $wpdb, $usces; の下に次の行を追加してみてください。
$res = $wpdb->query( 'SET SQL_BIG_SELECTS=1' );
set_time_limit(1800);php のタイムリミットを30分に設定していますがこれは自由です。その他のタイムリミットの影響がありますので30分持続する保証は有りません。またセーフモードでは無効です。
よろしくお願いいたします。
2011年2月16日 3:25 AM #61502saijo参加者おはようございます。
さっそく教えていただいたコードを挿入してみましたが、なぜか商品マスターは動かないまま、商品リストも表示されないままでした…。
試しに関係ありそうな所にあちこちコードを挿入してみましたが、画面はかわらずでした。
wp-db.phpなども見てみたのですが、どこを見ていいものか検討がつきませんでした。
2011年2月16日 3:37 AM #61503saijo参加者連続投稿すいません。
今試しにusces_item_master_edit.phpとusces_item_master_list.phpのglobal $wpdb, $usces;下に教えていただいたコードを挿入してみたところ、無事に動きました。
お騒がせいたしました。
ありがとうございます。
2011年2月16日 3:48 AM #61504nanbuキーマスター?
今現在商品リストが表示されないと言う状況でしょうか。
そういうことでしたら、前回のデータベースエラーの際にデータが壊れてしまった可能性が高いのではと思います。データーベースをクリアして再インストールが必要ではないかと思います。
再インストールの際、Welcart はDevelopment Version をご利用ください。前回のコメントのコードが既に入っております。
よろしくお願いいたします。
2011年2月16日 4:08 AM #61505saijo参加者説明がわかりずらく申し訳ありません。CSVの一括登録と話が混ざっていました。
CSVの一括登録をした時からいままでずっと商品マスターのページが商品リストが表示されず、エラーが出たまま固まっていた状態でした。
それをおしえていただいたコードをusces_item_master_edit.phpとusces_item_master_list.phpに追加してみた所動くようになったという事です。
現在は商品も無事に表示されています。
2011年2月16日 7:24 AM #61506nanbuキーマスターああ、コメントのタイミングが行き違いになったようですね。
動くようになってよかったです。
2011年2月18日 10:52 AM #61507saijo参加者こんにちは。
まだDevelopment Versionはインストールしていないのですが、その後今度はCSVファイルの商品出力時に同じエラーが出るようになってしまいました。
試しに、plugins/usc-e-shop/functions/utility.phpの
1400行目あたりの
function usces_download_item_list() {
require_once( USCES_PLUGIN_DIR . “/classes/itemList.class.php” );
global $wpdb, $usces;
の下に
$res = $wpdb->query( ‘SET SQL_BIG_SELECTS=1’ );
set_time_limit(1800);
を追加してみた所、このエラーは出なくなりましたが、代わりに
Fatal error: Out of memory (allocated 28835840) (tried to allocate 4104 bytes) in ~~/~/(ファイル名はランダム)
が出るようになってしまいました。
php.iniなどでメモリーもいじってみましたが、効果なしでした。
そこで、現在契約しているサーバーの物理メモリが26Mと、少し少なめなので、こちらを10M程増設を検討中なのです。
このような対応で間違っていないでしょうか?
2011年2月19日 12:24 AM #61508nanbuキーマスター一般的にWelcart を利用する上では32MB以上を推奨しています。
22MB+データサイズをおおよその必要メモリーサイズと考えて良いと思います。
また、データサイズが大きい場合は小分けにしてダウンするのも有効かと思います。
2011年2月21日 2:11 AM #61509saijo参加者おはようございます。
やはり物理メモリが全然足りていないのですね。
さっそく増設の手続きを進めようと思います。
ありがとうございます。
増設後にまたなにかあればご報告いたします。
あと、商品データを小分けにダウンロードする方法は最新バージョンのwelcartに存在するのでしょうか?オンラインマニュアルなどを見てもその方法がみつけられませんでした。
2011年2月21日 3:35 AM #61510nanbuキーマスター失礼しました。
現在商品マスターのデータ出力は、検索結果が反映されていなかったのをすっかり忘れていました。検索結果が反映されるように修正したいと思います。
その上で、重複しないようにカテゴリーごとにDLするなどで分割できるかと思います。
-
投稿者投稿
- このトピックに返信するにはログインが必要です。