• Resolved grant512

    (@grant512)


    Hello author. I have an wocommerce website with 2.7k products and using a filter called WBW filter which really slowdown my website. I did disabled it and website loads like a charm. I have played with setups and optimization and nothing really worked out.

    When I click the parent category usally loads after 9-10 sec. Do you think if I install this plugin it might help?

    I am using Query monitor and giving me a slow query report DBWpf: get /wp-content/plugins/woo-product-filter/modules/woofilters/mod.php:4125] */ of 0.0559 time

    Hoping you can assist.

    Thanks

Viewing 11 replies - 1 through 11 (of 11 total)
  • Plugin Author OllieJones

    (@olliejones)

    Thanks for this.

    I think it is about https://wordpress.org/plugins/woo-product-filter/

    That plugin seems to create, then use, temporary tables in the database, and I cannot tell from the information you gave me what part of its operation is causing slowdowns.

    If you can show me the slow queries it will help. Three possible ways.

    1. Try using this plugin to add high-performance keys to wp_postmeta. See if it works. This is probably the easiest way to try things out. And it will help other aspects of WooCommerce.
    2. Install John Blackbourn’s Query Monitor plugin, do the slow operation, look at the output and cut’n’paste the slow query to a reply here.
    3. Install this https://wordpress.org/plugins/index-wp-mysql-for-speed/ plugin, then use it to capture a monitor. While the monitor is active do some of the slow operations. When the monitor is captured, upload the monitor and reply to this topic with the upload id.

    You can read about capturing monitors here. https://www.plumislandmedia.net/index-wp-mysql-for-speed/monitor_database_operations/

    Thread Starter grant512

    (@grant512)

    Hello Ollie, yesterday I tried converting all to high -performance keys including wp-postmeta. Also I did upload the result using monitor tab with ID MmxRy9RR. Thank you.

    Also unsure if I capture the latest as I was testing a preload cache and disabled it when I did a fresh monitor.

    Plugin Author OllieJones

    (@olliejones)

    Thanks for the upload.

    The high-performance keys seem to help a bit. Is that your experience?

    That plugin contains some SQL performance antipatterns, unfortunately. In particular, the pattern

    WHERE something IN (great, long, list, of, many, different, terms)

    doesn’t perform really well.

    Thread Starter grant512

    (@grant512)

    Hello Ollie, did not really notice much difference when I converted to high-performance keys. Any other ways I can improve the speed? do you think?

    Thread Starter grant512

    (@grant512)

    I noticed a slow response when doing an update with products. Also when importing csv resulting to Bad gateway.

    • This reply was modified 6 months ago by grant512.
    Plugin Author OllieJones

    (@olliejones)

    If you can capture another, shorter-duration, monitor where you do the slow things as the monitor is being captured, I can take another look.

    But, I have to say, it looks like you use a shared hosting service and your site may be hitting its limitations.

    Thread Starter grant512

    (@grant512)

    HI, I did start a monitor again. Still the same id MmxRy9RR

    Plugin Author OllieJones

    (@olliejones)

    Hi, could you please upload that monitor? Thanks.

    Plugin Author OllieJones

    (@olliejones)

    I haven’t heard back. Please don’t hesitate to open another support topic if i can help further.

    By the way, I’m not stunned by the efficiency of the wbw query code, to put it mildly.

    Thread Starter grant512

    (@grant512)

    Hello John, here is the Query Report

    SELECT tr.term_taxonomy_id, tt.term_id, tt.taxonomy, tt.parent, COUNT(*) as cnt
    FROM wpf_temp_table AS wpf_temp
    INNER JOIN wp_term_relationships tr
    ON (tr.object_id=wpf_temp.ID)
    INNER JOIN wp_term_taxonomy tt
    ON (tt.term_taxonomy_id=tr.term_taxonomy_id)
    INNER JOIN wp_terms ttt
    ON (ttt.term_id=tt.term_id)
    INNER JOIN wp_wpf_meta_data md_type
    ON (md_type.product_id=wpf_temp.ID
    AND md_type.key_id=1)
    WHERE tt.taxonomy IN (‘product_cat’, ‘pwb-brand’, ‘pa_series’, ‘pa_fender-type’, ‘pa_width-sf’, ‘pa_diameter’, ‘pa_bend-size’, ‘pa_size-diam’, ‘pa_base-diameter’, ‘pa_measurements’, ‘pa_centre-hole’, ‘pa_overal-length-sf’, ‘pa_inlet-type’, ‘pa_round-barrel’, ‘pa_size-a-od’, ‘pa_id-size’, ‘pa_od-size’, ‘pa_inlet-id’, ‘pa_stacks-length’, ‘pa_inlet’, ‘pa_nat-aspirated’, ‘pa_length’, ‘pa_body-od’, ‘pa_barrel-diameter-am’, ‘pa_barrel-length’, ‘pa_working-range’, ‘pa_size-a-id’, ‘pa_suits-sb’, ‘pa_style’, ‘pa_configuration’, ‘pa_leg-length’, ‘pa_id-clamping-size’, ‘pa_od-clamping-size’, ‘product_tag’)
    AND (md_type.val_id!=3
    OR tt.taxonomy NOT IN (‘pa_series’,’pa_width-sf’,’pa_diameter’,’pa_bend-size’,’pa_size-diam’,’pa_overal-length-sf’,’pa_id-size’,’pa_od-size’,’pa_inlet-id’,’pa_stacks-length’,’pa_inlet’,’pa_nat-aspirated’,’pa_length’,’pa_body-od’,’pa_barrel-diameter-am’,’pa_barrel-length’)
    OR EXISTS(SELECT 1
    FROM wpf_temp_table_var_attrs as p_childs
    WHERE p_childs.id=wpf_temp.id and p_childs.taxonomy=tt.taxonomy and p_childs.value=ttt.slug
    LIMIT 1))
    GROUP BY tr.term_taxonomy_id /* From [cscparts.com.au/tag/truck/] in [/nas/content/live/cscparts/wp-content/plugins/woo-product-filter/modules/woofilters/mod.php:4155] */

    Unsure why the monitor is logging Sept 7 only. I did start monioting just now and its not updating.

    Saved monitors monitor September 4, 2025 5:41 am―September 7, 2025 8:56 pm (3.6d) 3,105 queries captured.VersionsPlugin:1.5.4 MySQL:8.0.43-34 WordPress:6.8.3 WordPress database:60421 php:8.2.29

    Plugin Author OllieJones

    (@olliejones)

    Oh, my my my. That is one giant hairball of a query, with some epic index-defeating WHERE clauses. IN(big list) OR (NOT IN(big list) AND something != something). Holy cow.

    I don’t think any amount of indexing voodoo can fix it, sorry to say. If I were the WBW developer, I would be very interested in examining your use case and trying to improve performance by reworking the code.

    I wish I could help. But I don’t believe I can.

Viewing 11 replies - 1 through 11 (of 11 total)

You must be logged in to reply to this topic.