MySQL کے لیے اصلاح کی تکنیک: کارکردگی اور رفتار کو بڑھانا

SELECT سوالات میں ضروری فیلڈز کی وضاحت کریں۔

استفسار میں تمام فیلڈز کو منتخب کرنے کے بجائے SELECT ، بوجھ کو کم کرنے اور استفسار کی رفتار کو بہتر بنانے کے لیے صرف مطلوبہ فیلڈز کا انتخاب کریں۔

مثال کے طور پر، اگر آپ کو صرف گاہک کے نام اور پتے کا خیال ہے، تو استفسار کو تبدیل کریں:

SELECT * FROM customers;

کے ساتھ

SELECT name, address FROM customers;

 

اشاریہ جات بنائیں

Index MySQL تیزی سے ڈیٹا کی تلاش اور بازیافت میں مدد کریں ۔ ان فیلڈز کی شناخت کریں جو اکثر WHERE, JOIN, یا ORDER BY شقوں میں استعمال ہوتے ہیں اور ان کے لیے اشاریہ تیار کریں۔

مثال کے طور پر، " orders " ٹیبل میں، اگر " customer_id " فیلڈ کثرت سے استعمال کیا جاتا ہے WHERE یا JOIN استفسار کیا جاتا ہے، تو آپ مندرجہ ذیل انڈیکس بنا سکتے ہیں:

CREATE INDEX idx_customer_id ON orders(customer_id);

 

مناسب قسم کے اشاریہ جات کا استعمال کریں۔

MySQL مختلف قسم کے اشاریہ جات فراہم کرتا ہے جیسے کہ B-tree ، ہیش، اور full-text ۔ بہترین کارکردگی کو یقینی بنانے کے لیے اپنے استفسار کے تقاضوں کی بنیاد پر مناسب قسم کے انڈیکس کا انتخاب کریں۔

مثال کے طور پر، اگر آپ کو ڈیٹا فیلڈ میں متن تلاش کرنے کی ضرورت ہے، تو آپ full-text مندرجہ ذیل انڈیکس بنا سکتے ہیں:

CREATE FULLTEXT INDEX idx_description ON products(description);

 

استفسارات کو بہتر بنائیں

EXPLAIN استفسار پر عمل درآمد کا منصوبہ دیکھنے اور MySQL اس کا تجزیہ کرنے کے لیے استعمال کریں ۔ اس سے آپ کو کارکردگی کے مسائل کی نشاندہی کرنے اور اشاریہ جات کا استعمال کرتے ہوئے یا سوالات کو دوبارہ لکھ کر سوالات کو بہتر بنانے میں مدد ملتی ہے۔

مثال کے طور پر، کسی سوال کا استفسار پلان دیکھنے کے لیے SELECT ، درج ذیل کمانڈ کو چلائیں:

EXPLAIN SELECT * FROM orders WHERE customer_id = 123;

 

واپس آنے والے نتائج کی تعداد کو محدود کریں۔

جب کوئی استفسار بڑی تعداد میں نتائج دیتا ہے، تو LIMIT شق کا استعمال کرتے ہوئے واپس کیے گئے نتائج کی تعداد کو محدود کریں۔ یہ بوجھ کو کم کرنے اور استفسار کی رفتار کو بہتر بنانے میں مدد کرتا ہے۔

مثال کے طور پر، "مصنوعات" ٹیبل سے صرف 10 نتائج واپس کرنے کے لیے، آپ درج ذیل استفسار استعمال کر سکتے ہیں:

SELECT * FROM products LIMIT 10;

 

INNER JOIN کے بجائے استعمال کریں۔ JOIN

INNER JOIN باقاعدگی سے بہتر کارکردگی کا مظاہرہ کرتا ہے JOIN. استعمال کریں INNER JOIN جب آپ صرف ان ریکارڈوں کی پرواہ کرتے ہیں جن کا دونوں ٹیبلز میں مماثلت ہو۔

مثال کے طور پر، " " فیلڈ کی بنیاد پر " orders " اور " " جدولوں میں شامل ہونے کے لیے ، آپ درج ذیل استفسار استعمال کر سکتے ہیں: customers customer_id

SELECT * FROM orders INNER JOIN customers ON orders.customer_id = customers.customer_id;

 

عارضی میزیں احتیاط سے استعمال کریں۔

عارضی میزیں بعض صورتوں میں استعمال کی جا سکتی ہیں، لیکن انہیں احتیاط سے استعمال کرنے کی ضرورت ہے کیونکہ وہ سوالات کو سست کر سکتے ہیں۔ اگر ممکن ہو تو عارضی میزیں استعمال کرنے سے بچنے کے لیے استفسارات کو بہتر بنانے پر غور کریں۔

مثال کے طور پر، درج ذیل استفسار میں عارضی ٹیبل استعمال کرنے کے بجائے:

CREATE TEMPORARY TABLE temp_table SELECT * FROM products;

آپ اصل ٹیبل سے ڈیٹا کو براہ راست استفسار کرنے کے لیے استفسار کو بہتر بنانے کی کوشش کر سکتے ہیں۔

 

فائن ٹیون MySQL کنفیگریشن

سسٹم کے وسائل سے زیادہ سے زیادہ فائدہ اٹھانے اور اپنی درخواست کے تقاضوں سے ہم آہنگ ہونے کے لیے MySQL کو دوبارہ ترتیب دینے پر غور کریں۔ اس میں میموری، بفر سائز، کنکشن کی حدیں، اور دیگر پیرامیٹرز کو ترتیب دینا شامل ہے۔ MySQL دستاویزات کا حوالہ دیں اور اپنے مخصوص ماحول کے مطابق ترتیب کو ایڈجسٹ کرنے کا طریقہ سیکھیں۔

 

غیر ضروری ڈیٹا کو حذف کریں۔

ڈیٹا بیس کا سائز کم کرنے اور استفسار کی رفتار کو بہتر بنانے کے لیے غیر ضروری ڈیٹا کو حذف کریں یا پرانے ڈیٹا کا بیک اپ لیں۔

مثال کے طور پر، اگر آپ کے پاس logs پرانے لاگ ریکارڈز کو ذخیرہ کرنے والا " " ٹیبل ہے، تو آپ درج ذیل استفسار کا استعمال کرتے ہوئے ایک سال سے پرانے ریکارڈ کو حذف کر سکتے ہیں:

DELETE FROM logs WHERE created_at < '2022-01-01';

 

میموری کو استعمال کریں۔ cache

مائی ایس کیو ایل کی میموری کو cache کثرت سے انجام پانے والے سوالات اور حال ہی میں حاصل کردہ ڈیٹا کو ذخیرہ کرنے کے لیے ترتیب دیں۔ یہ ڈسک تک رسائی کے وقت کو کم کرنے اور استفسار کی رفتار کو بہتر بنانے میں مدد کرتا ہے۔

مثال کے طور پر، 1GB کے سائز کے ساتھ میموری کیش کو کنفیگر کرنے کے لیے، آپ MySQL کی "my.cnf" کنفیگریشن فائل میں اس طرح ترمیم کر سکتے ہیں:

[mysqld]  
...  
query_cache_type = 1  
query_cache_size = 1G  

 

براہ کرم نوٹ کریں کہ اوپر دی گئی مثالیں مثالی ہیں اور انہیں آپ کے اصل ڈیٹا بیس کی ساخت اور ضروریات کے مطابق ایڈجسٹ کرنے کی ضرورت ہے۔ ان اصلاحی تکنیکوں کو لاگو کرنے سے پہلے اور بعد میں ان کی تاثیر کو احتیاط سے جانچیں اور جانچیں تاکہ یہ یقینی بنایا جا سکے کہ وہ آپ کے مخصوص ماحول کے لیے موزوں ہیں۔