Back to Question Center
0

ਫਾਸਟ ਸਾਈਟਾਂ ਲਈ ਐਸਐਮਐਲ ਸਵਾਲਾਂ ਨੂੰ ਕਿਵੇਂ ਅਨੁਕੂਲ ਬਣਾਇਆ ਜਾਵੇ ਫਾਸਟ ਸਾਈਟਾਂ ਲਈ ਐਸਐਮਐਲ ਸਵਾਲਾਂ ਨੂੰ ਕਿਵੇਂ ਅਨੁਕੂਲ ਬਣਾਇਆ ਜਾਵੇ: ਡੀਬੱਗਿੰਗ ਅਤੇ & ਮਿਗਲ

1 answers:
ਫਾਸਟ ਸਾਈਟਾਂ ਲਈ SQL ਕੈਟੇਗਰੀ ਨੂੰ ਕਿਵੇਂ ਅਨੁਕੂਲ ਬਣਾਉਣਾ ਹੈ

ਇਹ ਲੇਖ ਅਸਲ ਵਿੱਚ ਸੈਲਸਿ ਸ਼ਮਾਲਟ ਬਲੌਗ 'ਤੇ ਪ੍ਰਕਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਸੀ, ਅਤੇ ਇਜਾਜ਼ਤ ਨਾਲ ਇੱਥੇ ਮੁੜ ਪ੍ਰਕਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ.

ਤੁਸੀਂ ਜਾਣਦੇ ਹੋ ਕਿ ਇੱਕ ਫਾਸਟ ਸਾਈਟ == ਜ਼ਿਆਦਾ ਖੁਸ਼ ਲੋਕ, ਗੂਗਲ ਤੋਂ ਸੁਧਾਰੀ ਦਰਜਾਬੰਦੀ ਅਤੇ ਵਧੇ ਹੋਏ ਪਰਿਵਰਤਨ. ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਇਹ ਵੀ ਸੋਚੋ ਕਿ ਤੁਹਾਡੀ Semaltal site ਜਿੰਨੀ ਜਲਦੀ ਹੋ ਸਕੇ ਹੋ ਸਕਦੀ ਹੈ: ਤੁਸੀਂ ਸਾਈਟ ਦੀ ਕਾਰਗੁਜ਼ਾਰੀ ਵੱਲ ਧਿਆਨ ਦਿੱਤਾ ਹੈ, ਇੱਕ ਸਰਵਰ ਸਥਾਪਤ ਕਰਨ ਦੇ ਵਧੀਆ ਅਮਲ ਤੋਂ, ਹੌਲੀ ਕੋਡ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ, ਅਤੇ ਆਪਣੇ ਚਿੱਤਰਾਂ ਨੂੰ CDN ਤੇ ਲੋਡ ਕਰਨ ਲਈ, ਪਰ ਇਹ ਸਭ ਕੁਝ ?

ਡਿਸਟੈਨਿਕ, ਡੈਟਾਬੇਸ-ਅਧਾਰਿਤ ਵੈਬਸਾਈਟ ਜਿਵੇਂ ਕਿ ਸੈਮਟ੍ਰਟ, ਤੁਹਾਡੇ ਕੋਲ ਅਜੇ ਵੀ ਤੁਹਾਡੇ ਹੱਥ 'ਤੇ ਇੱਕ ਸਮੱਸਿਆ ਹੋ ਸਕਦੀ ਹੈ: ਤੁਹਾਡੀ ਸਾਈਟ ਨੂੰ ਘਟਾਉਣ ਵਾਲੇ ਡਾਟਾਬੇਸ ਸਵਾਲਾਂ.

ਇਸ ਅਹੁਦੇ 'ਤੇ, ਸਿਮਟੈਂਟ ਤੁਹਾਨੂੰ ਇਸ ਗੱਲ ਦੀ ਅਗਵਾਈ ਕਰਦਾ ਹੈ ਕਿ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਪੈਦਾ ਕਰਨ ਵਾਲੇ ਪ੍ਰਸ਼ਨਾਂ ਦੀ ਕਿਵੇਂ ਪਹਿਚਾਣ ਕਰਨੀ ਹੈ, ਉਨ੍ਹਾਂ ਨਾਲ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਕਿਵੇਂ ਸਮਝਣਾ ਹੈ, ਤੇਜ਼ ਸੁਧਾਰਾਂ ਅਤੇ ਚੀਜ਼ਾਂ ਨੂੰ ਤੇਜ਼ ਕਰਨ ਲਈ ਹੋਰ ਪਹੁੰਚ ਮਿਉਚੁਅਲ ਅਸਲ ਪੁੱਛਗਿੱਛ ਦੀ ਵਰਤੋਂ ਕਰ ਰਿਹਾ ਹੈ ਜਿਸਦਾ ਅਸੀਂ ਹਾਲ ਹੀ ਵਿਚ ਨਜਿੱਠਿਆ ਹੈ ਜੋ ਗਾਹਕ ਪੱਧਰਾਂ ' com

ਪਛਾਣ

ਹੌਲੀ SQL ਕ੍ਰੇਜ਼ੀਜ਼ ਫਿਕਸ ਕਰਨ ਵਿਚ ਪਹਿਲਾ ਕਦਮ ਉਹਨਾਂ ਨੂੰ ਲੱਭਣਾ ਹੈ ਐਸ਼ਲੇ ਨੇ ਪਹਿਲਾਂ ਬਲੌਗ ਉੱਤੇ ਡੀਬੱਗਿੰਗ ਪਲਗਇਨ ਕਿਊਰੀ ਮਾਨੀਟਰ ਦੀ ਪ੍ਰਸ਼ੰਸਾ ਕੀਤੀ ਹੈ, ਅਤੇ ਇਹ ਪਲੱਗਇਨ ਦੇ ਡੇਟਾਬੇਸ ਸਵਾਲ ਫੀਚਰ ਹੈ ਜੋ ਅਸਲ ਵਿੱਚ ਹੌਲੀ SQL ਕਵੇਰੀ ਦੀ ਪਛਾਣ ਕਰਨ ਲਈ ਇੱਕ ਅਣਮੁੱਲੇ ਸੰਦ ਬਣਾਉਂਦੀ ਹੈ. ਪੰਨੇ ਦੀ ਬੇਨਤੀ ਦੇ ਦੌਰਾਨ ਚਲਾਏ ਗਏ ਸਾਰੇ ਡੇਟਾਬੇਸ ਸਵਾਲਾਂ ਤੇ ਪਲੱਗਇਨ ਰਿਪੋਰਟਾਂ. ਇਹ ਉਹਨਾਂ ਨੂੰ ਕੋਡ ਜਾਂ ਭਾਗ (ਪਲੱਗਇਨ, ਥੀਮ ਜਾਂ ਸਿਮਲਟ ਕੋਰ) ਦੁਆਰਾ ਫਿਲਟਰ ਕਰਨ ਦੀ ਇਜਾਜਤ ਦਿੰਦਾ ਹੈ, ਅਤੇ ਡੁਪਲੀਕੇਟ ਅਤੇ ਹੌਲੀ ਸਵਾਲਾਂ ਨੂੰ ਉਜਾਗਰ ਕਰਦਾ ਹੈ:

ਫਾਸਟ ਸਾਈਟਾਂ ਲਈ ਐਸਐਮਐਲ ਸਵਾਲਾਂ ਨੂੰ ਕਿਵੇਂ ਅਨੁਕੂਲ ਬਣਾਇਆ ਜਾਵੇਫਾਸਟ ਸਾਈਟਾਂ ਲਈ ਐਸਐਮਐਲ ਸਵਾਲ ਦੀ ਅਨੁਕੂਲਤਾ ਕਿਵੇਂ ਕਰੀਏ ਸੰਬੱਧ ਵਿਸ਼ੇ:
ਡੀਬੱਗਿੰਗ ਅਤੇ ਸਿਮਟਲ

ਜੇਕਰ ਤੁਸੀਂ ਕਿਸੇ ਪ੍ਰੋਡਕਸ਼ਨ ਸਾਈਟ ਤੇ ਡੀਬੱਗਿੰਗ ਪਲੱਗਇਨ ਨੂੰ ਸਥਾਪਤ ਨਹੀਂ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ (ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਕੁਝ ਕਾਰਗੁਜ਼ਾਰੀ ਓਵਰਹੈੱਡ ਜੋੜਨ ਬਾਰੇ ਚਿੰਤਤ ਹੋਵੋ) ਤਾਂ ਤੁਸੀਂ MySQL ਹੌਲੀ ਸਿਮਟਲ ਲੌਗ ਨੂੰ ਚਾਲੂ ਕਰਨ ਦੀ ਚੋਣ ਕਰ ਸਕਦੇ ਹੋ, ਚਲਾਉਣ ਲਈ ਸਮੇਂ ਦੀ ਮਾਤਰਾ. ਇਹ ਕੌਂਫਿਗਰ ਕਰਨਾ ਅਸਾਨ ਹੁੰਦਾ ਹੈ ਅਤੇ ਇਹ ਸੈਟ ਅਪ ਕਰਦਾ ਹੈ ਕਿ ਕਿੱਥੇ ਪੁੱਛਗਿੱਛਾਂ ਨੂੰ ਲੌਗ ਕਰਨ ਲਈ. ਜਿਵੇਂ ਕਿ ਇਹ ਇੱਕ ਸਰਵਰ-ਪੱਧਰ ਦਾ ਟਵੀਕ ਹੈ, ਕਾਰਗੁਜ਼ਾਰੀ ਹਿੱਟ ਘੱਟ ਹੋ ਜਾਵੇਗੀ, ਜੋ ਕਿ ਸਾਈਟ ਤੇ ਡੀਬੱਗਿੰਗ ਪਲੱਗਇਨ ਹੋਵੇ, ਪਰ ਇਸਦੀ ਵਰਤੋਂ ਨਾ ਹੋਣ 'ਤੇ ਬੰਦ ਕੀਤੀ ਜਾਣੀ ਚਾਹੀਦੀ ਹੈ.

ਸਮਝਣਾ

ਜਦੋਂ ਤੁਸੀਂ ਇਕ ਮਹਿੰਗਾ ਪੁੱਛਗਿੱਛ ਲੱਭ ਲੈਂਦੇ ਹੋ ਜੋ ਤੁਸੀਂ ਸੁਧਾਰ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ ਤਾਂ ਅਗਲਾ ਕਦਮ ਇਹ ਸਮਝਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਨਾ ਹੈ ਕਿ ਕਿਊਰੀ ਨੂੰ ਕੀ ਹੌਲੀ ਕਰਨਾ ਹੈ. ਸਾਡੀ ਸਾਈਟ 'ਤੇ ਵਿਕਾਸ ਦੇ ਦੌਰਾਨ ਸਮਾਲ, ਸਾਨੂੰ ਇੱਕ ਕਵੇਰੀ ਮਿਲੀ ਜਿਸ ਨੂੰ ਚਲਾਉਣ ਲਈ ਲੱਗਭਗ 8 ਸਕਿੰਟ ਲੱਗੀਆਂ ਸਨ!

     SELECTl key_id,l order_id,l activation_email,l licence_key,l software_product_id,l ਸਾਫਟਵੇਅਰ_ਵਰਜਨ,l activations_limit,l ਬਣਾਇਆ,l ਨਵਿਆਉਣ_ ਕਿਸਮ,l renewal_id,l exempt_domain,s next_payment_date,s ਸਥਿਤੀ,pm2. post_id AS 'product_id',ਸ਼ਾਮ meta_value AS 'user_id'ਤੋਂoiz6q8a_woocommerce_software_licences lਅੰਦਰੂਨੀ ਸ਼ਾਮਿਲ ਹੋਵੋoiz6q8a_woocommerce_software_subscriptions ਓ.ਐਨ.ਐੱਸ. key_id = l. key_idਅੰਦਰੂਨੀ ਸ਼ਾਮਿਲ ਹੋਵੋoiz6q8a_posts ਪੀ ਓ ਪੀ. ID = l. order_idਅੰਦਰੂਨੀ ਸ਼ਾਮਿਲ ਹੋਵੋoiz6q8a_postmeta ਦੁਪਹਿਰ ਬਾਅਦ ਦੁਪਹਿਰ. ਪੋਸਟ_id = p. IDਅਤੇ ਸ਼ਾਮ meta_key = '_customer_user'ਅੰਦਰੂਨੀ ਸ਼ਾਮਿਲ ਹੋਵੋoiz6q8a_postmeta 2 ਵਜੇ 2 ਵਜੇ. meta_key = '_software_product_id'ਅਤੇ pm2. meta_value = l. software_product_idWHEREਪੀ. ਪੋਸਟ_ਟਾਈਪ = 'ਦੁਕਾਨ_ਡਰ'ਅਤੇ ਸ਼ਾਮ meta_value = 279ਆਦੇਸ਼ ਦੁਆਰਾ next_payment_date    

ਸਾਨੂੰ ਸਾਡੇ ਪਲੱਗਇਨ ਸਟੋਰ ਨੂੰ ਚਲਾਉਣ ਲਈ WooCommerce ਅਤੇ WooCommerce ਸਾਫਟਵੇਅਰ ਗਾਹਕੀ ਪਲੱਗਇਨ ਦਾ ਇੱਕ ਪਸੰਦੀ ਦਾ ਵਰਜਨ ਵਰਤਦੇ ਹਨ. ਇਸ ਪੁੱਛਗਿੱਛ ਦਾ ਮੰਤਵ ਇੱਕ ਗਾਹਕ ਲਈ ਸਾਰੇ ਸਬਸਕ੍ਰਿਪਸ਼ਨ ਪ੍ਰਾਪਤ ਕਰਨਾ ਹੈ ਜਿੱਥੇ ਅਸੀਂ ਆਪਣੇ ਗਾਹਕ ਨੰਬਰ ਨੂੰ ਜਾਣਦੇ ਹਾਂ. ਸਾਫਟਵੇਅਰ ਗਾਹਕੀ ਪਲਗਇਨ ਦੁਆਰਾ ਬਣਾਏ ਗਏ ਕਸਟਮ ਟੇਬਲ ਵਿੱਚ ਕੁਝ ਜੋੜੇ ਵੀ ਸ਼ਾਮਲ ਹੁੰਦੇ ਹਨ. ਆਉ ਇਸ ਪ੍ਰਸ਼ਨ ਨੂੰ ਹੋਰ ਸਮਝਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੀਏ.

MySQL ਤੁਹਾਡਾ ਦੋਸਤ ਹੈ

MySQL ਕੋਲ ਸੌਖਾ ਬਿਆਨ ਡਿਸ਼ਰੀਬ ਹੈ, ਜਿਸਨੂੰ ਇੱਕ ਸਾਰਣੀ ਦੇ ਢਾਂਚੇ ਜਿਵੇਂ ਕਿ ਇਸ ਦੇ ਕਾਲਮਾਂ, ਡਾਟਾ ਕਿਸਮਾਂ, ਡਿਫਾਲਟ ਬਾਰੇ ਆਉਟਪੁੱਟ ਜਾਣਕਾਰੀ ਲਈ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ. ਇਸ ਲਈ ਜੇ ਤੁਸੀਂ ਡੌਕ੍ਰਿਏਬਲ wp_postmeta; ਤੁਸੀਂ ਹੇਠਾਂ ਦਿੱਤੇ ਨਤੀਜੇ ਵੇਖੋਗੇ:

ਫੀਲਡ ਕਿਸਮ ਨੱਲ ਕੁੰਜੀ ਡਿਫੌਲਟ ਵਾਧੂ
meta_id ਵੱਡੇ
ਸਾਈਨਸਾਈਡ
ਨੂ ਪੀ.ਆਰ.ਆਈ. ਨੂਲ ਆਟੋ_ਇਨਕਰਮੈਂਟ
ਪੋਸਟ_id ਵੱਡੇ
ਸਾਈਨਸਾਈਡ
ਨੂ ਮਲ 0
ਮੈਟਾ_ਕੀ ਵਾਰਚਰ (255) ਹਾਂ ਮਲ ਨੂਲ
meta_value ਲੰਗਟੈਕਸਟ ਹਾਂ ਨੂਲ

ਇਹ ਠੰਡਾ ਹੈ, ਪਰ ਤੁਹਾਨੂੰ ਪਹਿਲਾਂ ਹੀ ਇਸ ਬਾਰੇ ਪਤਾ ਹੋ ਸਕਦਾ ਹੈ. ਪਰ ਕੀ ਤੁਹਾਨੂੰ ਪਤਾ ਹੈ ਕਿ ਡਿਸ਼ਰੀਬ ਬਿਆਨ ਪ੍ਰੀਫਿਕਸ ਅਸਲ ਵਿੱਚ ਸੈਟਲ , ਇਨਸਰਟ , ਅਪਡੇਟ , ਰਿਪਲੇਸ ਤੇ ਵਰਤੀ ਜਾ ਸਕਦੀ ਹੈ. ) ਅਤੇ ਡੈਲੀਟ ਬਿਆਨ? ਇਹ ਇਸਦੇ ਸਮਾਨਾਰਥਕ ਐਕਸਪਲਾਇਨ ਦੁਆਰਾ ਹੋਰ ਆਮ ਤੌਰ ਤੇ ਜਾਣਿਆ ਜਾਂਦਾ ਹੈ ਅਤੇ ਸਾਨੂੰ ਵਿਸਥਾਰਪੂਰਵਕ ਜਾਣਕਾਰੀ ਦੇਵੇਗਾ ਕਿ ਸਟੇਟਮੈਂਟ ਕਿਵੇਂ ਚਲਾਇਆ ਜਾਏਗਾ.

ਸਾਡੀ ਹੌਲੀ ਸਵਾਲ ਲਈ ਇਹ ਨਤੀਜੇ ਹਨ:

id select_type ਟੇਬਲ ਕਿਸਮ ਸੰਭਵ_ ਕੀਜ਼ ਕੁੰਜੀ ਕੁੰਜੀ_ਲੈਨ ਰਿਫ ਕਤਾਰਾਂ ਵਾਧੂ
1 ਸਧਾਰਨ ਸ਼ਾਮ 2 ਰੈਫ਼ ਮੈਟਾ_ਕੀ ਮੈਟਾ_ਕੀ 576 ਕਾਂਸਟ 28 ਕਿੱਥੇ ਵਰਤਣਾ ਹੈ; ਆਰਜ਼ੀ ਵਰਤਣਾ; ਫਾਈਲਾਂਸਟ ਵਰਤਣਾ
1 ਸਧਾਰਨ ਵਜੇ ਰੈਫ਼ ਪੋਸਟ_ ਆਈਡੀ, ਮੈਟਾ_ਕੀ ਮੈਟਾ_ਕੀ 576 ਕਾਂਸਟ 37456 ਕਿੱਥੇ ਵਰਤਣਾ
1 ਸਧਾਰਨ ਪੀ eq_ref ਪ੍ਰਾਇਮਰੀ, ਟਾਈਪ_ਸਟੇਟਸ_ਡੇਟ ਪ੍ਰਾਇਮਰੀ 8 ਖੂਬਸੂਰਤ ਸ਼ਾਮ ਪੋਸਟ_id 1 ਕਿੱਥੇ ਵਰਤਣਾ
1 ਸਧਾਰਨ l ਰੈਫ਼ ਪ੍ਰਾਇਮਰੀ, ਆਰਡਰ_ਆਈਡ ਆਰਡਰ_ਆਈਡ 8 ਖੂਬਸੂਰਤ ਸ਼ਾਮ ਪੋਸਟ_id 1 ਇੰਡੈਕਸ ਦੀ ਸਥਿਤੀ ਵਰਤਣਾ; ਕਿੱਥੇ ਵਰਤਣਾ
1 ਸਧਾਰਨ s eq_ref ਪ੍ਰਾਇਮਰੀ ਪ੍ਰਾਇਮਰੀ 8 ਖੂਬਸੂਰਤ l key_id 1 ਨੂਲ

ਪਹਿਲੀ ਨਜ਼ਰ ਤੇ, ਇਹ ਵਿਆਖਿਆ ਕਰਨ ਵਿੱਚ ਬਹੁਤ ਸੌਖਾ ਨਹੀਂ ਹੁੰਦਾ. ਸੁਭਾਗਪੂਰਵਕ, ਸੈਮਟੈੱਟ ਵਿਚਲੇ ਲੋਕਾਂ ਨੇ ਬਿਆਨ ਨੂੰ ਸਮਝਣ ਲਈ ਇਕ ਵਿਆਪਕ ਗਾਈਡ ਦਿੱਤੀ ਹੈ.

ਸਭ ਤੋਂ ਮਹੱਤਵਪੂਰਣ ਕਾਲਮ ਹੈ ਟਾਈਪ , ਜੋ ਦੱਸਦਾ ਹੈ ਕਿ ਟੇਬਲ ਕਿਵੇਂ ਸ਼ਾਮਲ ਹੋ ਗਏ ਹਨ. ਜੇ ਤੁਸੀਂ ALL ਵੇਖਦੇ ਹੋ ਤਾਂ ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ MySQL ਡਿਸਕ ਤੋਂ ਸਾਰੀ ਸਾਰਣੀ ਨੂੰ ਪੜ ਰਿਹਾ ਹੈ, I / O ਦਰਾਂ ਨੂੰ ਵਧਾ ਰਿਹਾ ਹੈ ਅਤੇ CPU ਤੇ ਲੋਡ ਪਾ ਰਿਹਾ ਹੈ. ਇਹ ਇੱਕ "ਪੂਰਾ ਟੇਬਲ ਸਕੈਨ" (ਇਸਦੇ ਬਾਅਦ ਵਿੱਚ ਹੋਰ) ਦੇ ਰੂਪ ਵਿੱਚ ਜਾਣਿਆ ਜਾਂਦਾ ਹੈ.

ਕਤਾਰਾਂ ਕਾਲਮ ਇਹ ਵੀ ਚੰਗਾ ਸੰਕੇਤ ਹੈ ਕਿ MySQL ਨੂੰ ਕੀ ਕਰਨਾ ਪੈ ਰਿਹਾ ਹੈ, ਕਿਉਂਕਿ ਇਹ ਵਿਖਾਉਂਦਾ ਹੈ ਕਿ ਨਤੀਜੀਆਂ ਦੀ ਖੋਜ ਕਰਨ ਲਈ ਇਹ ਕਿੰਨੀਆਂ ਕਤਾਰਾਂ ਵਿੱਚ ਹੈ.

ਸਮਝਾਓ ਸਾਨੂੰ ਹੋਰ ਜਾਣਕਾਰੀ ਵੀ ਦਿੰਦਾ ਹੈ ਜਿਸਦਾ ਅਸੀਂ ਅਨੁਕੂਲ ਬਣਾਉਣ ਲਈ ਵਰਤ ਸਕਦੇ ਹਾਂ. ਉਦਾਹਰਨ ਲਈ, pm2 ਸਾਰਣੀ (wp_postmeta), ਇਹ ਸਾਨੂੰ ਦੱਸ ਰਹੇ ਹਾਂ ਕਿ ਅਸੀਂ ਫ਼ਾਈਲਾਂਸਟ ਦਾ ਇਸਤੇਮਾਲ ਕਰਦੇ ਹਾਂ, ਕਿਉਂਕਿ ਅਸੀਂ ਸਟੇਟਮੈਂਟ ਆਰਡਰ ਬਾਈ ਕਲੇਮੈਂਟ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸੁਲਝਾਉਣ ਲਈ ਨਤੀਜਿਆਂ ਨੂੰ ਪੁੱਛ ਰਹੇ ਹਾਂ. ਜੇ ਅਸੀਂ ਵੀ ਸਵਾਲ ਦਾ ਗਰੁੱਪ ਬਣਾ ਰਹੇ ਸੀ ਤਾਂ ਅਸੀਂ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਨੂੰ ਓਵਰਹਡ ਜੋੜ ਰਹੇ ਸੀ. MySQL 5. 6 ਅਤੇ ਉੱਤੇ ਚੱਲ ਰਹੇ ਡਾਟਾਬੇਸ ਲਈ, ਐਕਸਪਲਾਇਨ ਦੇ ਨਤੀਜਿਆਂ ਨੂੰ JSON ਦੇ ਤੌਰ ਤੇ ਆਉਟਪੁਟ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਅਤੇ MySQL ਵਰਕਬੈਂਚ ਨੇ ਇਹ ਬਿਆਨ JSON ਨੂੰ ਵਿਜ਼ੂਅਲ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਪਲਾਨ ਵਿੱਚ ਬਦਲ ਦਿੱਤਾ ਹੈ:

ਫਾਸਟ ਸਾਈਟਾਂ ਲਈ ਐਸਐਮਐਲ ਸਵਾਲਾਂ ਨੂੰ ਕਿਵੇਂ ਅਨੁਕੂਲ ਬਣਾਇਆ ਜਾਵੇਫਾਸਟ ਸਾਈਟਾਂ ਲਈ ਐਸਐਮਐਲ ਸਵਾਲ ਦੀ ਅਨੁਕੂਲਤਾ ਕਿਵੇਂ ਕਰੀਏ ਸੰਬੱਧ ਵਿਸ਼ੇ:
ਡੀਬੱਗਿੰਗ ਅਤੇ ਸਿਮਟਲ

ਇਹ ਆਟੋਮੈਟਿਕ ਹੀ ਤੁਹਾਡੇ ਖਰਚਿਆਂ ਦੇ ਮੁੱਲ ਨੂੰ ਰੰਗ ਭਰ ਕੇ ਸਵਾਲਾਂ ਵੱਲ ਧਿਆਨ ਖਿੱਚਦਾ ਹੈ. ਅਸੀਂ ਸਿੱਧਾ ਵੇਖ ਸਕਦੇ ਹਾਂ ਕਿ wp_woocommerce_software_licences (ਉਪਨਾਮ) ਸਾਰਣੀ ਵਿੱਚ ਇੱਕ ਗੰਭੀਰ ਮੁੱਦਾ ਹੈ

ਹੱਲਿੰਗ

ਕਿਊਰੀ ਦਾ ਇਹ ਹਿੱਸਾ ਇੱਕ ਪੂਰਾ ਟੇਬਲ ਸਕੈਨ ਕਰ ਰਿਹਾ ਹੈ, ਜਿਸਨੂੰ ਤੁਸੀਂ ਬਚਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ, ਕਿਉਂਕਿ ਇਹ order_id ਨੂੰ wp_woocommerce_software_licences ਟੇਬਲ wp_posts ਸਾਰਣੀ ਵਿੱਚ ਹੌਲੀ ਸਵਾਲਾਂ ਲਈ ਇਹ ਇੱਕ ਆਮ ਮੁੱਦਾ ਹੈ ਅਤੇ ਇੱਕ ਜੋ ਆਸਾਨੀ ਨਾਲ ਹੱਲ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ.

ਸੂਚੀ-ਪੱਤਰ

order_id ਸਾਰਣੀ ਵਿੱਚ ਡੇਟਾ ਦੀ ਪਛਾਣ ਕਰਨ ਦਾ ਇੱਕ ਬਹੁਤ ਮਹੱਤਵਪੂਰਨ ਭਾਗ ਹੈ, ਅਤੇ ਜੇ ਅਸੀਂ ਇਸ ਤਰਾਂ ਦੀ ਪੁੱਛਗਿੱਛ ਕਰ ਰਹੇ ਹਾਂ ਤਾਂ ਸਾਡੇ ਕੋਲ ਕਾਲਮ ਤੇ ਇੱਕ ਸੂਚਕਾਂਕ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ, ਨਹੀਂ ਤਾਂ MySQL ਅਸਲ ਵਿੱਚ ਸਾਰਣੀ ਦੀਆਂ ਹਰ ਕਤਾਰ ਨੂੰ ਸਕੈਨ ਕਰ ਦੇਵੇਗਾ ਇਹ ਲੋੜੀਂਦੀਆਂ ਕਤਾਰਾਂ ਲੱਭਦੀ ਹੈ ਆਓ ਇਕ ਸੂਚਕਾਂਕ ਨੂੰ ਜੋੜਦੇ ਹਾਂ ਅਤੇ ਵੇਖਦੇ ਹਾਂ ਕੀ ਹੈ:

     ਕ੍ਰਮਡ ਇੰਡੈਕਸ ਆਰਡਰ_ਆਈਡੀ ਓਪ. W__woocommerce_software_licences (order_id)    

ਫਾਸਟ ਸਾਈਟਾਂ ਲਈ ਐਸਐਮਐਲ ਸਵਾਲਾਂ ਨੂੰ ਕਿਵੇਂ ਅਨੁਕੂਲ ਬਣਾਇਆ ਜਾਵੇਫਾਸਟ ਸਾਈਟਾਂ ਲਈ ਐਸਐਮਐਲ ਸਵਾਲ ਦੀ ਅਨੁਕੂਲਤਾ ਕਿਵੇਂ ਕਰੀਏ ਸੰਬੱਧ ਵਿਸ਼ੇ:
ਡੀਬੱਗਿੰਗ ਅਤੇ ਸਿਮਟਲ

ਵਾਹ, ਅਸੀਂ ਉਸ ਇੰਡੈਕਸ ਨੂੰ ਜੋੜ ਕੇ ਪੁੱਛਗਿੱਛ ਤੋਂ 5 ਸਕਿੰਟਾਂ ਤੋਂ ਵੱਧ ਦੀ ਸ਼ੇਵ ਕਰਨ ਵਿਚ ਕਾਮਯਾਬ ਰਹੇ ਹਾਂ, ਵਧੀਆ ਕੰਮ!

ਆਪਣੀ ਪੁੱਛਗਿੱਛ ਜਾਣੋ

ਪੁੱਛਗਿੱਛ ਮਿਟਾਓ - ਸ਼ਾਮਿਲ ਹੋਣ ਨਾਲ ਜੁੜੋ, ਸਬਕਯੂਰੀ ਦੁਆਰਾ ਸਬਕਯੂਰੀ. ਕੀ ਇਹ ਉਹ ਕੰਮ ਕਰਦੀ ਹੈ ਜੋ ਇਸਨੂੰ ਕਰਨ ਦੀ ਜ਼ਰੂਰਤ ਨਹੀਂ ਹੈ? ਕੀ ਅਨੁਕੂਲਤਾ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ?

ਇਸ ਕੇਸ ਵਿੱਚ ਅਸੀਂ order_id ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਪੋਸਟ ਟੇਬਲ ਵਿੱਚ ਲਾਇਸੈਂਸ ਟੇਬਲ ਵਿੱਚ ਸ਼ਾਮਲ ਹੋ ਜਾਂਦੇ ਹਾਂ, ਜਦੋਂ ਕਿ ਸਟੇਟ ਪੋਸਟਾਂ shop_order ਦੇ ਪੋਸਟਾਂ ਨੂੰ ਸੀਮਤ ਕਰਨ 'ਤੇ ਸੀਮਤ ਰਹੇ. ਇਹ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਿ ਅਸੀਂ ਸਿਰਫ ਸਹੀ ਕ੍ਰਮ ਰਿਕਾਰਡਾਂ ਦਾ ਇਸਤੇਮਾਲ ਕਰ ਰਹੇ ਹਾਂ, ਡਾਟਾ ਐਂਟੀਗਰੇਟੀ ਨੂੰ ਲਾਗੂ ਕਰਨਾ ਹੈ. ਹਾਲਾਂਕਿ, ਇਹ ਅਸਲ ਵਿੱਚ ਕਿਊਰੀ ਦਾ ਇੱਕ ਬੇਲੋੜੀ ਹਿੱਸਾ ਹੈ. ਸਾਨੂੰ ਪਤਾ ਹੈ ਕਿ ਇਹ ਇੱਕ ਸੁਰੱਖਿਅਤ ਬਾਜ਼ੀ ਹੈ ਕਿ ਟੇਬਲ ਵਿੱਚ ਇੱਕ ਸੌਫਟਵੇਅਰ ਲਾਇਸੰਸ ਦੀ ਕਤਾਰ ਆਰਡਰ_id ਪੋਸਟ ਸਾਰਣੀ ਵਿੱਚ WooCommerce ਆਰਡਰ ਨਾਲ ਸੰਬੰਧਿਤ ਹੈ, ਕਿਉਂਕਿ ਇਹ PHP ਪਲੱਗਇਨ ਕੋਡ ਵਿੱਚ ਲਾਗੂ ਹੈ. ਆਓ ਜੋੜਨ ਨੂੰ ਹਟਾ ਦੇਈਏ ਅਤੇ ਦੇਖੋ ਕੀ ਇਹ ਚੀਜ਼ਾਂ ਨੂੰ ਸੁਧਾਰਦਾ ਹੈ:

ਫਾਸਟ ਸਾਈਟਾਂ ਲਈ ਐਸਐਮਐਲ ਸਵਾਲਾਂ ਨੂੰ ਕਿਵੇਂ ਅਨੁਕੂਲ ਬਣਾਇਆ ਜਾਵੇਫਾਸਟ ਸਾਈਟਾਂ ਲਈ ਐਸਐਮਐਲ ਸਵਾਲ ਦੀ ਅਨੁਕੂਲਤਾ ਕਿਵੇਂ ਕਰੀਏ ਸੰਬੱਧ ਵਿਸ਼ੇ:
ਡੀਬੱਗਿੰਗ ਅਤੇ ਸਿਮਟਲ

ਸੈਮਟਟ ਬਹੁਤ ਵੱਡੀ ਬੱਚਤ ਨਹੀਂ ਹੈ, ਪਰ ਹੁਣ ਸਵਾਲ 3 ਸਕਿੰਟਾਂ ਦੇ ਅੰਦਰ ਹੈ.

ਕੈਚ ਸਭ ਕੁਝ!

ਜੇ ਤੁਹਾਡੇ ਸਰਵਰ ਕੋਲ MySQL ਕਯੂਰੀ ਕੈਚਿੰਗ ਨੂੰ ਡਿਫਾਲਟ ਰੂਪ ਵਿੱਚ ਨਹੀਂ ਹੈ ਤਾਂ ਇਹ ਚਾਲੂ ਕਰਨ ਦੇ ਲਾਇਕ ਹੈ. ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ MySQL ਨਤੀਜੇ ਦੇ ਨਾਲ ਚਲਾਏ ਗਏ ਸਾਰੇ ਸਟੇਟਮੈਂਟਸ ਦਾ ਰਿਕਾਰਡ ਰੱਖੇਗਾ, ਅਤੇ ਜੇ ਇੱਕੋ ਹੀ ਬਿਆਨ ਬਾਅਦ ਵਿੱਚ ਚਲਾਇਆ ਜਾਂਦਾ ਹੈ ਤਾਂ ਕੈਸ਼ ਨਤੀਜਾ ਵਾਪਸ ਆ ਜਾਂਦੇ ਹਨ. ਕੈਂਚੇ ਫਾਲਤੂ ਨਹੀਂ ਹੁੰਦੇ, ਕਿਉਂਕਿ ਮੇਸਕੀਕਲ ਕੈਸ਼ੇ ਨੂੰ ਫਲੱਸ਼ ਕਰਦਾ ਹੈ ਜਦੋਂ ਟੇਬਲ ਬਦਲੇ ਜਾਂਦੇ ਹਨ

ਕਿਊਰੀ ਮੋਨੀਟਰ ਨੇ ਸਾਡੇ ਸਤਰ ਨੂੰ ਇੱਕ ਸਿੰਗਲ ਪੇਜ ਲੋਡ ਤੇ 4 ਵਾਰ ਚਲਾਉਣਾ ਲੱਭਿਆ ਹੈ, ਅਤੇ ਭਾਵੇਂ ਕਿ MySQL ਕਯੂਰੀ ਕੈਚਿੰਗ ਹੋਣੀ ਚੰਗੀ ਗੱਲ ਹੈ, ਇੱਕ ਬੇਨਤੀ ਵਿੱਚ ਡੁਪਲੀਕੇਟ ਡੈਟਾਬੇਸ ਵਿੱਚ ਪੜ੍ਹਨਾ ਚਾਹੀਦਾ ਹੈ ਪੂਰੀ ਸਟਾਪ ਬੰਦ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ. ਤੁਹਾਡੇ PHP ਕੋਡ ਵਿਚ ਸਥਿਰ ਕੈਚਿੰਗ ਇਸ ਮੁੱਦੇ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ ਇੱਕ ਸਧਾਰਨ ਅਤੇ ਬਹੁਤ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਤਰੀਕਾ ਹੈ ';$ ਨਤੀਜੇ = $ wpdb-> get_results ($ sql, ARRAY_A);ਸਥਿਰ :: $ ਗਾਹਕੀ [$ user_id] = $ ਨਤੀਜੇ;$ ਨਤੀਜੇ ਵਾਪਸ ਕਰੋ;}}

ਕੈਚ ਦੀ ਬੇਨਤੀ ਦਾ ਜੀਵਨ ਕਾਲ ਹੈ, ਖਾਸ ਤੌਰ 'ਤੇ ਤਤਕਾਲੀ ਵਸਤੂ ਦਾ. ਜੇਕਰ ਤੁਸੀਂ ਸਾਰੇ ਬੇਨਤੀਆਂ ਦੇ ਦੌਰਾਨ ਲਗਾਤਾਰ ਖੋਜ ਨਤੀਜਿਆਂ ਨੂੰ ਲੱਭ ਰਹੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਇੱਕ ਸਥਾਈ ਆਬਜੈਕਟ ਕੈਚ ਨੂੰ ਲਾਗੂ ਕਰਨ ਦੀ ਲੋੜ ਹੋਵੇਗੀ. ਮਿਡਲ, ਤੁਹਾਡੇ ਕੋਡ ਨੂੰ ਕੈਸ਼ ਬਣਾਉਣ ਅਤੇ ਕੈਸ਼ ਐਂਟਰੀ ਨੂੰ ਅਪ੍ਰਮਾਣਿਤ ਕਰਨ ਲਈ ਜ਼ਿੰਮੇਵਾਰ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ ਜਦੋਂ ਅੰਡਰਲਾਈੰਗ ਡੇਟਾ ਬਦਲਦਾ ਹੈ.

ਬਾਕਸ ਦੇ ਬਾਹਰ ਸੋਚਣਾ

ਮਿਮਟਲ ਹੋਰ ਤਰੀਕੇ ਹਨ ਜੋ ਅਸੀਂ ਕਯੂਰੀ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਨੂੰ ਅਜ਼ਮਾਉਣ ਲਈ ਕਰ ਸਕਦੇ ਹਾਂ ਜੋ ਕਿ ਸਿਰਫ ਪੁੱਛ-ਪੜਤਾਲ ਨੂੰ ਜੋੜਨ ਜਾਂ ਇਕ ਇੰਡੈਕਸ ਨੂੰ ਜੋੜਨ ਤੋਂ ਕੁਝ ਹੋਰ ਕੰਮ ਸ਼ਾਮਲ ਕਰਦਾ ਹੈ. ਸਾਡੀ ਪੁੱਛ-ਗਿੱਛ ਦੇ ਸਭ ਤੋਂ ਮਾੜੇ ਹਿੱਸੇ ਵਿਚੋਂ ਇਕ ਗਾਹਕ ਆਈਡੀ ਤੋਂ ਉਤਪਾਦ ਆਈਡੀ ਤਕ ਜਾਣ ਲਈ ਟੇਬਲਜ਼ ਵਿਚ ਸ਼ਾਮਲ ਹੋਣ ਲਈ ਕੰਮ ਹੈ ਅਤੇ ਸਾਨੂੰ ਹਰ ਗਾਹਕ ਲਈ ਇਹ ਕਰਨਾ ਪੈਂਦਾ ਹੈ. ਜੇ ਅਸੀਂ ਸਿਰਫ਼ ਇਕ ਵਾਰ ਜੁੜ ਗਏ ਤਾਂ ਕੀ ਕੀਤਾ, ਇਸ ਲਈ ਜਦੋਂ ਅਸੀਂ ਲੋੜ ਪਈਏ ਤਾਂ ਅਸੀਂ ਗਾਹਕ ਦੇ ਡੇਟਾ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰ ਸਕੀਏ?

ਤੁਸੀਂ ਲਾਇਸੈਂਸ ਡੇਟਾ ਨੂੰ ਸਟੋਰ ਕਰਨ ਵਾਲੀ ਇਕ ਸਾਰਣੀ ਬਣਾ ਕੇ ਡਾਟਾ ਨਕਾਰਾ ਕਰ ਸਕਦੇ ਹੋ, ਉਪਭੋਗਤਾ id ਅਤੇ ਉਤਪਾਦ ਆਈਡੀ ਦੇ ਨਾਲ ਸਾਰੇ ਲਾਈਸੈਂਸਾਂ ਲਈ ਅਤੇ ਕੇਵਲ ਇੱਕ ਖਾਸ ਗਾਹਕ ਲਈ ਇਸਦੇ ਵਿਰੁੱਧ ਕਹੋ. ਲਾਇਸੈਂਸ ਟੇਬਲ (ਜਾਂ ਦੂਜਿਆਂ ਦੁਆਰਾ ਡਾਟਾ ਕਿਵੇਂ ਬਦਲ ਸਕਦਾ ਹੈ, ਇਸਦੇ ਆਧਾਰ ਤੇ) ਨੂੰ ਇਨਸਟੇਟ / ਅਪਡੇਟ / ਮਿਟਾਓ 'ਤੇ MySQL ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਤੁਹਾਨੂੰ ਟੇਬਲ ਨੂੰ ਦੁਬਾਰਾ ਬਣਾਉਣ ਦੀ ਲੋੜ ਹੋਵੇਗੀ ਪਰ ਇਹ ਉਸ ਡੇਟਾ ਨੂੰ ਪੁੱਛਣ ਦੇ ਪ੍ਰਦਰਸ਼ਨ ਵਿੱਚ ਮਹੱਤਵਪੂਰਣ ਰੂਪ ਵਿੱਚ ਸੁਧਾਰ ਕਰੇਗਾ.

ਇਸੇ ਤਰ੍ਹਾਂ ਜੇ ਬਹੁਤ ਸਾਰੇ ਮੇਲ-ਜੋਲ MySQL ਵਿੱਚ ਤੁਹਾਡੀ ਕਿਊਬ ਨੂੰ ਹੌਲੀ ਕਰਦੇ ਹਨ, ਤਾਂ ਇਹ ਪੁੱਛਗਿੱਛ ਨੂੰ ਦੋ ਜਾਂ ਵੱਧ ਸਟੇਟਮੈਂਟਾਂ ਵਿੱਚ ਤੋੜਨ ਅਤੇ ਉਹਨਾਂ ਨੂੰ PHP ਵਿੱਚ ਵੱਖਰੇ ਤੌਰ ਤੇ ਚਲਾਉਣਾ ਤੇਜ਼ ਹੋ ਸਕਦਾ ਹੈ ਅਤੇ ਫਿਰ ਨਤੀਜੇ ਕੋਡ ਵਿੱਚ ਫਿਲਟਰ ਅਤੇ ਫਿਲਟਰ ਕਰ ਸਕਦੇ ਹਨ. ਲਰਲੇਲ ਐਲੋਕੰਟਡ ਵਿਚ ਉਤਸੁਕ ਲੋਡਿੰਗ ਰਿਵਾਜ ਦੇ ਸਮਾਨ ਕੁਝ ਕਰਦਾ ਹੈ.

ਵਰਡਪਰੈਸ wp_posts ਟੇਬਲ ਤੇ, ਜੇ ਤੁਹਾਡੇ ਕੋਲ ਵੱਡੀ ਮਾਤਰਾ ਵਿੱਚ ਡਾਟਾ ਹੈ, ਅਤੇ ਬਹੁਤ ਸਾਰੇ ਵੱਖ-ਵੱਖ ਕਸਟਮ ਪੋਸਟ ਦੀਆਂ ਕਿਸਮਾਂ ਤੇ ਹੌਲੀ ਹੌਲੀ ਪ੍ਰਸ਼ਨ ਹੋ ਸਕਦੇ ਹਨ. ਜੇ ਤੁਸੀਂ ਆਪਣੀ ਪੋਸਟ ਕਿਸਮ ਦੀ ਹੌਲੀ ਲਈ ਸਵਾਲ ਪੁੱਛ ਰਹੇ ਹੋ, ਤਾਂ ਕਸਟਮ ਪੋਸਟ ਸਟੋਰੇਜ ਮਾਡਲ ਅਤੇ ਕਸਟਮ ਟੇਬਲ ਤੋਂ ਦੂਰ ਜਾਣ ਬਾਰੇ ਵਿਚਾਰ ਕਰੋ.

ਨਤੀਜੇ

ਓਪਟੀਮਾਈਜੇਸ਼ਨ ਦੀ ਮੰਗ ਕਰਨ ਲਈ ਇਹਨਾਂ ਪਹੁੰਚਾਂ ਨਾਲ ਅਸੀਂ ਸਾਡੀ ਪੁੱਛਗਿੱਛ ਨੂੰ 8 ਸੈਕਿੰਡ ਤੋਂ ਲੈ ਕੇ ਸਿਰਫ 2 ਸੈਕਿੰਡ ਤੱਕ ਲੈ ਜਾਣ ਵਿਚ ਕਾਮਯਾਬ ਰਹੇ, ਅਤੇ 4 ਤੋਂ 1 ਤੱਕ ਕਦੋਂ ਕਿਹਾ ਗਿਆ ਸੀ. ਨੋਟ ਦੇ ਤੌਰ ਤੇ, ਉਹ ਸਵਾਲ ਸਮੇਂ ਰਿਕਾਰਡ ਕੀਤੇ ਗਏ ਸਨ ਸਾਡੇ ਵਿਕਾਸ ਵਾਤਾਵਰਨ ਤੇ ਚੱਲ ਰਿਹਾ ਹੈ ਅਤੇ ਉਤਪਾਦਨ ਤੇ ਤੇਜ਼ੀ ਨਾਲ ਹੋ ਜਾਵੇਗਾ.

ਮੈਨੂੰ ਆਸ ਹੈ ਕਿ ਇਹ ਹੌਲੀ ਸਵਾਲਾਂ ਨੂੰ ਟਰੈਕ ਕਰਨ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਫਿਕਸ ਕਰਨ ਲਈ ਮਦਦਗਾਰ ਮਾਰਗਦਰਸ਼ਕ ਰਿਹਾ ਹੈ. ਮਿਥੁਨਿਕ ਆਪਟੀਮਾਈਜੇਸ਼ਨ ਇੱਕ ਡਰਾਉਣਾ ਕੰਮ ਵਾਂਗ ਲੱਗ ਸਕਦਾ ਹੈ, ਪਰ ਜਿਵੇਂ ਹੀ ਤੁਸੀਂ ਇਸ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹੋ ਅਤੇ ਕੁਝ ਤੇਜ਼ ਜਿੱਤ ਪ੍ਰਾਪਤ ਕਰਦੇ ਹੋ ਤਾਂ ਤੁਸੀਂ ਬੱਗ ਪ੍ਰਾਪਤ ਕਰਨਾ ਸ਼ੁਰੂ ਕਰੋਗੇ ਅਤੇ ਹੋਰ ਵੀ ਚੀਜ਼ਾਂ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋਵੋਗੇ.

March 1, 2018