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 அடிக்கடி செயல்படுத்தப்படும் வினவல்கள் மற்றும் சமீபத்தில் அணுகப்பட்ட தரவைச் சேமிக்க MySQL இன் நினைவகத்தை உள்ளமைக்கவும். இது வட்டு அணுகல் நேரத்தை குறைக்கவும் வினவல் வேகத்தை மேம்படுத்தவும் உதவுகிறது.

எடுத்துக்காட்டாக, 1GB அளவுடன் நினைவகத் தற்காலிக சேமிப்பை உள்ளமைக்க, நீங்கள் MySQL இன் "my.cnf" உள்ளமைவு கோப்பை பின்வருமாறு மாற்றலாம்:

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

 

மேலே உள்ள எடுத்துக்காட்டுகள் விளக்கமானவை மற்றும் உங்கள் உண்மையான தரவுத்தளத்தின் கட்டமைப்பு மற்றும் தேவைகளுக்கு ஏற்ப சரிசெய்யப்பட வேண்டும் என்பதை நினைவில் கொள்ளவும். இந்த தேர்வுமுறை நுட்பங்களைப் பயன்படுத்துவதற்கு முன்னும் பின்னும், அவை உங்கள் குறிப்பிட்ட சூழலுக்கு ஏற்றவை என்பதை உறுதிசெய்ய, செயல்திறனை கவனமாகச் சோதித்து மதிப்பீடு செய்யவும்.