எனது கருத்துப்படி, முந்தைய வெளியீடுகளைப் போலல்லாமல், PostgreSQL 12 ஒன்று அல்லது இரண்டு புரட்சிகர அம்சங்களைக் கொண்டிருக்கவில்லை (பகிர்வு அல்லது இணையான வினவல் போன்றவை). PostgreSQL 12 இன் முக்கிய அம்சம் அதிக ஸ்திரத்தன்மை என்று நான் ஒருமுறை கேலி செய்தேன். உங்கள் வணிகத்தின் முக்கியமான தரவை நீங்கள் நிர்வகிக்கும்போது அது உங்களுக்குத் தேவையா?
ஆனால் PostgreSQL 12 அங்கு நிற்கவில்லை: புதிய அம்சங்கள் மற்றும் மேம்பாடுகளுடன், பயன்பாடுகள் சிறப்பாக செயல்படும், நீங்கள் செய்ய வேண்டியது எல்லாம் மேம்படுத்துவதுதான்!
(சரி, ஒருவேளை குறியீடுகளை மீண்டும் உருவாக்கலாம், ஆனால் இந்த வெளியீட்டில் இது நாம் பழகியதைப் போல பயமாக இல்லை.)
PostgreSQL ஐ மேம்படுத்துவது மற்றும் தேவையற்ற சலசலப்பு இல்லாமல் உடனடியாக குறிப்பிடத்தக்க மேம்பாடுகளை அனுபவிப்பது நன்றாக இருக்கும். சில ஆண்டுகளுக்கு முன்பு, நான் PostgreSQL 9.4 இலிருந்து PostgreSQL 10க்கு மேம்படுத்தப்பட்டதை மதிப்பாய்வு செய்தேன், மேலும் PostgreSQL 10 இல் மேம்படுத்தப்பட்ட வினவல் இணையானதன் மூலம் பயன்பாடு எவ்வாறு வேகமெடுத்தது என்பதைப் பார்த்தேன். மேலும், மிக முக்கியமாக, என்னிடம் இருந்து கிட்டத்தட்ட எதுவும் தேவையில்லை (ஒரு கட்டமைப்பு அளவுருவை அமைக்கவும். max_parallel_workers
).
ஏற்கிறேன், மேம்படுத்தப்பட்ட உடனேயே பயன்பாடுகள் சிறப்பாக செயல்படும் போது இது வசதியானது. மேலும் பயனர்களைப் பிரியப்படுத்த நாங்கள் மிகவும் கடினமாக முயற்சி செய்கிறோம், ஏனெனில் PostgreSQL இன்னும் அதிகமானவற்றைக் கொண்டுள்ளது.
PostgreSQL 12 க்கு எளிய மேம்படுத்தல் எப்படி உங்களை மகிழ்ச்சியடையச் செய்யும்? நான் இப்போது சொல்கிறேன்.
முக்கிய அட்டவணை மேம்பாடுகள்
அட்டவணைப்படுத்தல் இல்லாமல், தரவுத்தளம் வெகுதூரம் செல்லாது. வேறு எப்படி விரைவாக தகவலைக் கண்டறிய முடியும்? PostgreSQL இன் அடிப்படை அட்டவணைப்படுத்தல் அமைப்பு அழைக்கப்படுகிறது
நாங்கள் வெறுமனே ஆபரேட்டரைப் பயன்படுத்துகிறோம் CREATE INDEX ON some_table (some_column)
, மற்றும் PostgreSQL ஆனது குறியீட்டை புதுப்பித்த நிலையில் வைத்திருக்க நிறைய வேலை செய்கிறது. மந்திரம் போல எல்லாம் தானாக வேலை செய்கிறது.
ஆனால் PostgreSQL குறியீடுகளுக்கு ஒரு சிக்கல் உள்ளது - அவை
PostgreSQL 12 பி-ட்ரீ இன்டெக்ஸ்களின் செயல்திறனை பெரிதும் மேம்படுத்துகிறது, மேலும் TPC-C போன்ற வரையறைகளுடன் கூடிய சோதனைகள் சராசரியாக 40% குறைவான இடம் இப்போது பயன்படுத்தப்படுகிறது என்பதைக் காட்டுகிறது. இப்போது நாம் பி-ட்ரீ இன்டெக்ஸ்களை பராமரிப்பதில் மட்டும் (அதாவது எழுதும் செயல்பாடுகளில்) குறைந்த நேரத்தை செலவிடுகிறோம், ஆனால் குறியீடுகள் மிகவும் சிறியதாக இருப்பதால் தரவை மீட்டெடுக்கிறோம்.
தங்கள் அட்டவணைகளை செயலில் புதுப்பிக்கும் பயன்பாடுகள் - பொதுவாக OLTP பயன்பாடுகள் (
சில மேம்படுத்தல் உத்திகளுக்கு இந்த நன்மைகளைப் பயன்படுத்த பி-ட்ரீ குறியீடுகளை மீண்டும் உருவாக்க வேண்டும் (எ.கா.
PostgreSQL 12 இல் அட்டவணைப்படுத்தல் உள்கட்டமைப்பில் மற்ற மேம்பாடுகள் உள்ளன. ஏதோ மந்திரம் இருந்த இன்னொரு விஷயம் -
குறியீட்டு கட்டுமானத்தின் போது GiST, GIN மற்றும் SP-GiST குறியீடுகளால் உருவாக்கப்பட்ட WAL பதிவுகளின் மேல்நிலையை PostgreSQL 12 குறைத்துள்ளது. இது பல உறுதியான பலன்களை வழங்குகிறது: WAL பதிவுகள் குறைந்த வட்டு இடத்தை எடுத்துக்கொள்கின்றன, மேலும் பேரிடர் மீட்பு அல்லது பாயிண்ட்-இன்-டைம் மீட்டெடுப்பின் போது தரவு வேகமாக மீண்டும் இயக்கப்படுகிறது. உங்கள் பயன்பாடுகளில் இதுபோன்ற குறியீடுகளைப் பயன்படுத்தினால் (உதாரணமாக, PostGIS அடிப்படையிலான புவியியல் பயன்பாடுகள் GiST குறியீட்டை அதிகம் பயன்படுத்துகின்றன), இது உங்கள் பங்கில் எந்த முயற்சியும் இல்லாமல் அனுபவத்தை கணிசமாக மேம்படுத்தும் மற்றொரு அம்சமாகும்.
பகிர்வு - பெரியது, சிறந்தது, வேகமானது
PostgreSQL 10 அறிமுகப்படுத்தப்பட்டது
PostgreSQL 12 இல், பகிர்வு அமைப்பின் செயல்திறன் கணிசமாக சிறப்பாக உள்ளது, குறிப்பாக அட்டவணையில் ஆயிரக்கணக்கான பகிர்வுகள் இருந்தால். எடுத்துக்காட்டாக, ஒரு வினவல் ஆயிரக்கணக்கான பகிர்வுகளைக் கொண்ட அட்டவணையில் உள்ள சில பகிர்வுகளை மட்டுமே பாதித்தால், அது மிக வேகமாகச் செயல்படும். இந்த வகையான வினவல்களுக்கு மட்டும் செயல்திறன் மேம்படுத்தப்படவில்லை. பல பகிர்வுகளைக் கொண்ட அட்டவணையில் INSERT செயல்பாடுகள் எவ்வளவு வேகமாக உள்ளன என்பதையும் நீங்கள் கவனிப்பீர்கள்.
பயன்படுத்தி தரவு பதிவு
இந்த நன்மைகளுக்கு நன்றி, PostgreSQL ஆனது இன்னும் பெரிய தரவுத் தொகுப்புகளைச் சேமித்து அவற்றை எளிதாக மீட்டெடுக்க அனுமதிக்கிறது. உங்கள் பங்கில் எந்த முயற்சியும் இல்லை. பயன்பாட்டில் பல பகிர்வுகள் இருந்தால், நேரத் தொடர் தரவுகளைப் பதிவு செய்தல், ஒரு எளிய மேம்படுத்தல் அதன் செயல்திறனை கணிசமாக மேம்படுத்தும்.
இது சரியாக ஒரு "மேம்படுத்துதல் மற்றும் மகிழுங்கள்" மேம்பாடு இல்லை என்றாலும், பகிர்வு அட்டவணைகளை குறிப்பிடும் வெளிநாட்டு விசைகளை உருவாக்க PostgreSQL 12 உங்களை அனுமதிக்கிறது, பகிர்வு செய்வதை மகிழ்ச்சியுடன் வேலை செய்கிறது.
வினவல்களுடன் இன்னும் சிறப்பாக உள்ளது
போது
SQL க்கு புதியவர்கள் CTEகளைப் பயன்படுத்த விரும்புவதை நான் அடிக்கடி காண்கிறேன். தனிப்பட்ட முறையில், இந்த வினவல்களை மீண்டும் எழுத நான் விரும்பினேன் இல்லாமல் CTE மற்றும் உற்பத்தித்திறனை அதிகரிக்கும். இப்போது எல்லாம் வேறு.
PostgreSQL 12 பக்க விளைவுகள் இல்லாமல் ஒரு குறிப்பிட்ட வகை CTE இன் இன்லைன் செய்ய உங்களை அனுமதிக்கிறது (SELECT
), இது கோரிக்கையின் முடிவில் ஒரு முறை மட்டுமே பயன்படுத்தப்படுகிறது. நான் மீண்டும் எழுதிய CTE வினவல்களைக் கண்காணித்தால், அவற்றில் பெரும்பாலானவை இந்த வகைக்குள் வரும். இது டெவலப்பர்களுக்கு தெளிவான குறியீட்டை எழுத உதவுகிறது, அது இப்போது விரைவாகவும் இயங்குகிறது.
மேலும், PostgreSQL 12 நீங்கள் எதுவும் செய்யாமல், SQL செயல்படுத்தலை மேம்படுத்துகிறது. நான் இப்போது இதுபோன்ற வினவல்களை மேம்படுத்த வேண்டிய அவசியமில்லை என்றாலும், வினவல் தேர்வுமுறையில் PostgreSQL தொடர்ந்து செயல்படுவது மிகவும் நல்லது.
ஜஸ்ட்-இன்-டைம் (JIT) - இப்போது இயல்புநிலை
ஆதரவுடன் PostgreSQL 12 கணினிகளில்
PostgreSQL 12 இல் JIT இயல்பாகவே இயக்கப்பட்டிருப்பதால், செயல்திறன் தானாகவே மேம்படும், ஆனால் JIT ஐ அறிமுகப்படுத்திய PostgreSQL 11 இல் பயன்பாட்டைச் சோதித்துப் பார்க்க பரிந்துரைக்கிறேன், வினவல் செயல்திறனை அளவிட மற்றும் நீங்கள் ஏதாவது டியூன் செய்ய வேண்டுமா என்று பார்க்கவும்.
PostgreSQL 12 இல் மீதமுள்ள புதிய அம்சங்கள் பற்றி என்ன?
நிலையான SQL/JSON வழி வெளிப்பாடுகளைப் பயன்படுத்தி JSON தரவை ஆராயும் திறன் முதல் அளவுருவுடன் பல காரணி அங்கீகாரம் வரை PostgreSQL 12 பல புதிய அம்சங்களைக் கொண்டுள்ளது. clientcert=verify-full
, நெடுவரிசைகளை உருவாக்கியது மற்றும் பல. ஒரு தனி இடுகை போதும்.
PostgreSQL 10 போலவே, PostgreSQL 12 ஆனது மேம்படுத்தப்பட்ட உடனேயே ஒட்டுமொத்த செயல்திறனை மேம்படுத்தும். நீங்கள் நிச்சயமாக உங்கள் சொந்த பாதையை வைத்திருக்க முடியும் - நான் PostgreSQL 10 இல் செய்ததைப் போல, மேம்பாடுகளைச் செயல்படுத்தும் முன் உற்பத்தி அமைப்பில் இதே போன்ற நிலைமைகளின் கீழ் பயன்பாட்டைச் சோதிக்கவும். PostgreSQL 12 ஏற்கனவே நான் எதிர்பார்த்ததை விட மிகவும் நிலையானதாக இருந்தாலும், சோதனையில் சோம்பேறியாக இருக்க வேண்டாம். பயன்பாடுகளை முழுமையாக, உற்பத்தியில் வெளியிடுவதற்கு முன்.
ஆதாரம்: www.habr.com