ಸೋಮಾರಿಗಳಿಗಾಗಿ ಅಪ್‌ಗ್ರೇಡ್ ಮಾಡಿ: PostgreSQL 12 ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಹೇಗೆ ಸುಧಾರಿಸುತ್ತದೆ

ಸೋಮಾರಿಗಳಿಗಾಗಿ ಅಪ್‌ಗ್ರೇಡ್ ಮಾಡಿ: PostgreSQL 12 ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಹೇಗೆ ಸುಧಾರಿಸುತ್ತದೆ

PostgreSQL 12, "ವಿಶ್ವದ ಅತ್ಯುತ್ತಮ ತೆರೆದ ಮೂಲ ಸಂಬಂಧಿತ ಡೇಟಾಬೇಸ್" ನ ಇತ್ತೀಚಿನ ಆವೃತ್ತಿಯು ಒಂದೆರಡು ವಾರಗಳಲ್ಲಿ ಹೊರಬರಲಿದೆ (ಎಲ್ಲವೂ ಯೋಜನೆಯ ಪ್ರಕಾರ ನಡೆದರೆ). ಇದು ವರ್ಷಕ್ಕೊಮ್ಮೆ ಟನ್ ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳೊಂದಿಗೆ ಹೊಸ ಆವೃತ್ತಿಯನ್ನು ಬಿಡುಗಡೆ ಮಾಡುವ ಸಾಮಾನ್ಯ ವೇಳಾಪಟ್ಟಿಯನ್ನು ಅನುಸರಿಸುತ್ತದೆ ಮತ್ತು ಸ್ಪಷ್ಟವಾಗಿ ಹೇಳುವುದಾದರೆ, ಅದು ಪ್ರಭಾವಶಾಲಿಯಾಗಿದೆ. ಅದಕ್ಕಾಗಿಯೇ ನಾನು PostgreSQL ಸಮುದಾಯದ ಸಕ್ರಿಯ ಸದಸ್ಯನಾದೆ.

ನನ್ನ ಅಭಿಪ್ರಾಯದಲ್ಲಿ, ಹಿಂದಿನ ಬಿಡುಗಡೆಗಳಿಗಿಂತ ಭಿನ್ನವಾಗಿ, 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 B-ಟ್ರೀ ಇಂಡೆಕ್ಸ್‌ಗಳ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಹೆಚ್ಚು ಸುಧಾರಿಸುತ್ತದೆ ಮತ್ತು TPC-C ನಂತಹ ಮಾನದಂಡಗಳ ಪ್ರಯೋಗಗಳು ಸರಾಸರಿ 40% ಕಡಿಮೆ ಜಾಗವನ್ನು ಈಗ ಬಳಸಲಾಗಿದೆ ಎಂದು ತೋರಿಸಿದೆ. ಈಗ ನಾವು ಬಿ-ಟ್ರೀ ಸೂಚ್ಯಂಕಗಳನ್ನು (ಅಂದರೆ, ಬರವಣಿಗೆಯ ಕಾರ್ಯಾಚರಣೆಗಳಲ್ಲಿ) ನಿರ್ವಹಿಸುವಲ್ಲಿ ಕಡಿಮೆ ಸಮಯವನ್ನು ಕಳೆಯುತ್ತೇವೆ, ಆದರೆ ದತ್ತಾಂಶವನ್ನು ಹಿಂಪಡೆಯಲು ಸಹ, ಏಕೆಂದರೆ ಸೂಚ್ಯಂಕಗಳು ತುಂಬಾ ಚಿಕ್ಕದಾಗಿದೆ.

ತಮ್ಮ ಕೋಷ್ಟಕಗಳನ್ನು ಸಕ್ರಿಯವಾಗಿ ನವೀಕರಿಸುವ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು - ಸಾಮಾನ್ಯವಾಗಿ OLTP ಅಪ್ಲಿಕೇಶನ್‌ಗಳು (ನೈಜ-ಸಮಯದ ವಹಿವಾಟು ಪ್ರಕ್ರಿಯೆ) - ಡಿಸ್ಕ್ ಮತ್ತು ಪ್ರಕ್ರಿಯೆ ವಿನಂತಿಗಳನ್ನು ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಬಳಸುತ್ತದೆ. ಹೆಚ್ಚು ಡಿಸ್ಕ್ ಸ್ಥಳ, ಮೂಲಸೌಕರ್ಯವನ್ನು ನವೀಕರಿಸದೆ ಡೇಟಾಬೇಸ್ ಬೆಳೆಯಲು ಹೆಚ್ಚು ಸ್ಥಳಾವಕಾಶವಿದೆ.

ಕೆಲವು ಅಪ್‌ಗ್ರೇಡ್ ತಂತ್ರಗಳಿಗೆ ಈ ಪ್ರಯೋಜನಗಳ ಲಾಭವನ್ನು ಪಡೆಯಲು ಬಿ-ಟ್ರೀ ಇಂಡೆಕ್ಸ್‌ಗಳನ್ನು ಮರುನಿರ್ಮಾಣ ಮಾಡಬೇಕಾಗುತ್ತದೆ (ಉದಾ. pg_upgrade ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸೂಚ್ಯಂಕಗಳನ್ನು ಮರುನಿರ್ಮಾಣ ಮಾಡುವುದಿಲ್ಲ). PostgreSQL ನ ಹಿಂದಿನ ಆವೃತ್ತಿಗಳಲ್ಲಿ, ಕೋಷ್ಟಕಗಳಲ್ಲಿ ದೊಡ್ಡ ಸೂಚಿಕೆಗಳನ್ನು ಮರುನಿರ್ಮಾಣ ಮಾಡುವುದರಿಂದ ಗಮನಾರ್ಹವಾದ ಅಲಭ್ಯತೆಯನ್ನು ಉಂಟುಮಾಡಿತು ಏಕೆಂದರೆ ಈ ಮಧ್ಯೆ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಲಾಗಲಿಲ್ಲ. ಆದರೆ PostgreSQL 12 ಮತ್ತೊಂದು ತಂಪಾದ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಹೊಂದಿದೆ: ಈಗ ನೀವು ಆಜ್ಞೆಯೊಂದಿಗೆ ಸಮಾನಾಂತರವಾಗಿ ಸೂಚಿಕೆಗಳನ್ನು ಮರುನಿರ್ಮಾಣ ಮಾಡಬಹುದು ರೀಂಡೆಕ್ಸ್ ಏಕಕಾಲದಲ್ಲಿಅಲಭ್ಯತೆಯನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ತಪ್ಪಿಸಲು.

PostgreSQL 12 ರಲ್ಲಿ ಸೂಚ್ಯಂಕ ಮೂಲಸೌಕರ್ಯಕ್ಕೆ ಇತರ ಸುಧಾರಣೆಗಳಿವೆ. ಕೆಲವು ಮ್ಯಾಜಿಕ್ ಇದ್ದ ಇನ್ನೊಂದು ವಿಷಯ - ಬರೆಯಲು-ಮುಂದೆ ಲಾಗ್, ಅಕಾ WAL (ಬರಹ-ಮುಂದೆ ಲಾಗ್). ವೈಫಲ್ಯ ಮತ್ತು ಪುನರಾವರ್ತನೆಯ ಸಂದರ್ಭದಲ್ಲಿ ಪೋಸ್ಟ್‌ಗ್ರೆಎಸ್‌ಕ್ಯುಎಲ್‌ನಲ್ಲಿ ಪ್ರತಿ ವ್ಯವಹಾರವನ್ನು ಬರೆಯುವ-ಮುಂದೆ ಲಾಗ್ ದಾಖಲಿಸುತ್ತದೆ. ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಇದನ್ನು ಆರ್ಕೈವ್ ಮಾಡಲು ಬಳಸುತ್ತವೆ ಮತ್ತು ಪಾಯಿಂಟ್-ಇನ್-ಟೈಮ್ ಚೇತರಿಕೆ. ಸಹಜವಾಗಿ, ರೈಟ್-ಎಹೆಡ್ ಲಾಗ್ ಅನ್ನು ಡಿಸ್ಕ್‌ಗೆ ಬರೆಯಲಾಗುತ್ತದೆ, ಇದು ಕಾರ್ಯಕ್ಷಮತೆಯ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುತ್ತದೆ.

PostgreSQL 12 ಸೂಚ್ಯಂಕ ನಿರ್ಮಾಣದ ಸಮಯದಲ್ಲಿ GiST, GIN ಮತ್ತು SP-GiST ಸೂಚಿಕೆಗಳಿಂದ ರಚಿಸಲಾದ WAL ದಾಖಲೆಗಳ ಓವರ್ಹೆಡ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡಿದೆ. ಇದು ಹಲವಾರು ಸ್ಪಷ್ಟವಾದ ಪ್ರಯೋಜನಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ: WAL ದಾಖಲೆಗಳು ಕಡಿಮೆ ಡಿಸ್ಕ್ ಜಾಗವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತವೆ, ಮತ್ತು ವಿಪತ್ತು ಮರುಪಡೆಯುವಿಕೆ ಅಥವಾ ಪಾಯಿಂಟ್-ಇನ್-ಟೈಮ್ ರಿಕವರಿ ಸಮಯದಲ್ಲಿ ಡೇಟಾವನ್ನು ವೇಗವಾಗಿ ಮರುಪಂದ್ಯ ಮಾಡಲಾಗುತ್ತದೆ. ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ ನೀವು ಅಂತಹ ಸೂಚಿಕೆಗಳನ್ನು ಬಳಸಿದರೆ (ಉದಾಹರಣೆಗೆ, PostGIS-ಆಧಾರಿತ ಜಿಯೋಸ್ಪೇಷಿಯಲ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು GiST ಸೂಚಿಯನ್ನು ಬಹಳಷ್ಟು ಬಳಸುತ್ತವೆ), ಇದು ನಿಮ್ಮ ಕಡೆಯಿಂದ ಯಾವುದೇ ಪ್ರಯತ್ನವಿಲ್ಲದೆ ಅನುಭವವನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಸುಧಾರಿಸುವ ಮತ್ತೊಂದು ವೈಶಿಷ್ಟ್ಯವಾಗಿದೆ.

ವಿಭಜನೆ - ದೊಡ್ಡದು, ಉತ್ತಮ, ವೇಗ

PostgreSQL 10 ಅನ್ನು ಪರಿಚಯಿಸಲಾಗಿದೆ ಘೋಷಣಾತ್ಮಕ ವಿಭಜನೆ. PostgreSQL 11 ರಲ್ಲಿ ಇದನ್ನು ಬಳಸಲು ತುಂಬಾ ಸುಲಭವಾಗಿದೆ. PostgreSQL 12 ರಲ್ಲಿ ನೀವು ವಿಭಾಗಗಳ ಪ್ರಮಾಣವನ್ನು ಬದಲಾಯಿಸಬಹುದು.

PostgreSQL 12 ರಲ್ಲಿ, ವಿಭಜನಾ ವ್ಯವಸ್ಥೆಯ ಕಾರ್ಯಕ್ಷಮತೆಯು ಗಮನಾರ್ಹವಾಗಿ ಉತ್ತಮವಾಗಿದೆ, ವಿಶೇಷವಾಗಿ ಟೇಬಲ್‌ನಲ್ಲಿ ಸಾವಿರಾರು ವಿಭಾಗಗಳಿದ್ದರೆ. ಉದಾಹರಣೆಗೆ, ಒಂದು ಪ್ರಶ್ನೆಯು ಟೇಬಲ್‌ನಲ್ಲಿ ಸಾವಿರಾರು ವಿಭಾಗಗಳನ್ನು ಹೊಂದಿರುವ ಕೆಲವು ವಿಭಾಗಗಳನ್ನು ಮಾತ್ರ ಪರಿಣಾಮ ಬೀರಿದರೆ, ಅದು ಹೆಚ್ಚು ವೇಗವಾಗಿ ಕಾರ್ಯಗತಗೊಳ್ಳುತ್ತದೆ. ಈ ರೀತಿಯ ಪ್ರಶ್ನೆಗಳಿಗೆ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸಲಾಗಿಲ್ಲ. ಬಹು ವಿಭಾಗಗಳನ್ನು ಹೊಂದಿರುವ ಕೋಷ್ಟಕಗಳಲ್ಲಿ INSERT ಕಾರ್ಯಾಚರಣೆಗಳು ಎಷ್ಟು ವೇಗವಾಗಿವೆ ಎಂಬುದನ್ನು ಸಹ ನೀವು ಗಮನಿಸಬಹುದು.

ಬಳಸಿಕೊಂಡು ಡೇಟಾ ರೆಕಾರ್ಡಿಂಗ್ ಕಾಪಿ - ಮೂಲಕ, ಇದು ಉತ್ತಮ ಮಾರ್ಗವಾಗಿದೆ ಬೃಹತ್ ಡೇಟಾ ಡೌನ್‌ಲೋಡ್ ಮತ್ತು ಇಲ್ಲಿ ಒಂದು ಉದಾಹರಣೆಯಾಗಿದೆ JSON ಸ್ವೀಕರಿಸಲಾಗುತ್ತಿದೆ - PostgreSQL 12 ರಲ್ಲಿ ವಿಭಜಿತ ಕೋಷ್ಟಕಗಳು ಸಹ ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿವೆ. COPY ಯೊಂದಿಗೆ ಎಲ್ಲವೂ ಈಗಾಗಲೇ ವೇಗವಾಗಿದೆ, ಆದರೆ PostgreSQL 12 ನಲ್ಲಿ ಅದು ಸಂಪೂರ್ಣವಾಗಿ ಹಾರುತ್ತದೆ.

ಈ ಅನುಕೂಲಗಳಿಗೆ ಧನ್ಯವಾದಗಳು, PostgreSQL ನಿಮಗೆ ಇನ್ನೂ ದೊಡ್ಡ ಡೇಟಾ ಸೆಟ್‌ಗಳನ್ನು ಸಂಗ್ರಹಿಸಲು ಮತ್ತು ಅವುಗಳನ್ನು ಸುಲಭವಾಗಿ ಹಿಂಪಡೆಯಲು ಅನುಮತಿಸುತ್ತದೆ. ಮತ್ತು ನಿಮ್ಮ ಕಡೆಯಿಂದ ಯಾವುದೇ ಪ್ರಯತ್ನವಿಲ್ಲ. ಅಪ್ಲಿಕೇಶನ್ ಸಮಯ ಸರಣಿಯ ಡೇಟಾವನ್ನು ರೆಕಾರ್ಡಿಂಗ್ ಮಾಡುವಂತಹ ಅನೇಕ ವಿಭಾಗಗಳನ್ನು ಹೊಂದಿದ್ದರೆ, ಸರಳವಾದ ನವೀಕರಣವು ಅದರ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಸುಧಾರಿಸುತ್ತದೆ.

ಇದು ನಿಖರವಾಗಿ "ಅಪ್‌ಗ್ರೇಡ್ ಮತ್ತು ಆನಂದಿಸಿ" ಸುಧಾರಣೆಯಾಗಿಲ್ಲದಿದ್ದರೂ, ವಿಭಜಿತ ಕೋಷ್ಟಕಗಳನ್ನು ಉಲ್ಲೇಖಿಸುವ ವಿದೇಶಿ ಕೀಗಳನ್ನು ರಚಿಸಲು PostgreSQL 12 ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ, ವಿಭಜನೆಯನ್ನು ಕೆಲಸ ಮಾಡಲು ಸಂತೋಷವಾಗುತ್ತದೆ.

ಪ್ರಶ್ನೆಗಳೊಂದಿಗೆ ಕೇವಲ ಬಹಳಷ್ಟು ಉತ್ತಮವಾಗಿದೆ

ಯಾವಾಗ ಅಂತರ್ನಿರ್ಮಿತ ಸಾಮಾನ್ಯ ಟೇಬಲ್ ಅಭಿವ್ಯಕ್ತಿಗಳಿಗಾಗಿ ಪ್ಯಾಚ್ ಅನ್ನು ಅನ್ವಯಿಸಲಾಗಿದೆ (ಅಕಾ CTE, ಅಕಾ ಪ್ರಶ್ನೆಗಳೊಂದಿಗೆ), ನಾನು ಲೇಖನವನ್ನು ಬರೆಯಲು ಕಾಯಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ PostgreSQL ನೊಂದಿಗೆ ಅಪ್ಲಿಕೇಶನ್ ಡೆವಲಪರ್‌ಗಳು ಎಷ್ಟು ಸಂತೋಷವಾಗಿದ್ದರು. ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ವೇಗಗೊಳಿಸುವ ವೈಶಿಷ್ಟ್ಯಗಳಲ್ಲಿ ಇದು ಒಂದಾಗಿದೆ. ಸಹಜವಾಗಿ, ನೀವು CTE ಅನ್ನು ಬಳಸದ ಹೊರತು.

ನಾನು ಸಾಮಾನ್ಯವಾಗಿ SQL ಗೆ ಹೊಸಬರು CTE ಗಳನ್ನು ಬಳಸಲು ಇಷ್ಟಪಡುತ್ತೀರಿ ಎಂದು ನೀವು ಒಂದು ನಿರ್ದಿಷ್ಟ ರೀತಿಯಲ್ಲಿ ಬರೆದರೆ, ನೀವು ಕಡ್ಡಾಯವಾದ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಬರೆಯುತ್ತಿರುವಂತೆ ಭಾಸವಾಗುತ್ತದೆ. ವೈಯಕ್ತಿಕವಾಗಿ, ನಾನು ಸುತ್ತಲು ಈ ಪ್ರಶ್ನೆಗಳನ್ನು ಪುನಃ ಬರೆಯಲು ಇಷ್ಟಪಟ್ಟಿದ್ದೇನೆ ಇಲ್ಲದೆ CTE ಮತ್ತು ಉತ್ಪಾದಕತೆಯನ್ನು ಹೆಚ್ಚಿಸಿ. ಈಗ ಎಲ್ಲವೂ ವಿಭಿನ್ನವಾಗಿದೆ.

PostgreSQL 12 ಅಡ್ಡ ಪರಿಣಾಮಗಳಿಲ್ಲದೆ ನಿರ್ದಿಷ್ಟ ರೀತಿಯ CTE ಅನ್ನು ಇನ್‌ಲೈನ್ ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ (SELECT), ಇದು ವಿನಂತಿಯ ಕೊನೆಯಲ್ಲಿ ಒಮ್ಮೆ ಮಾತ್ರ ಬಳಸಲ್ಪಡುತ್ತದೆ. ನಾನು ಪುನಃ ಬರೆದ CTE ಪ್ರಶ್ನೆಗಳನ್ನು ನಾನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿದ್ದರೆ, ಅವುಗಳಲ್ಲಿ ಹೆಚ್ಚಿನವು ಈ ವರ್ಗಕ್ಕೆ ಸೇರುತ್ತವೆ. ಇದು ಡೆವಲಪರ್‌ಗಳಿಗೆ ಸ್ಪಷ್ಟ ಕೋಡ್ ಅನ್ನು ಬರೆಯಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ, ಅದು ಈಗ ತ್ವರಿತವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ.

ಇದಲ್ಲದೆ, PostgreSQL 12 ನೀವು ಏನನ್ನೂ ಮಾಡದೆಯೇ SQL ಎಕ್ಸಿಕ್ಯೂಶನ್ ಅನ್ನು ಉತ್ತಮಗೊಳಿಸುತ್ತದೆ. ಮತ್ತು ನಾನು ಬಹುಶಃ ಈಗ ಅಂತಹ ಪ್ರಶ್ನೆಗಳನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲದಿದ್ದರೂ, PostgreSQL ಪ್ರಶ್ನೆ ಆಪ್ಟಿಮೈಸೇಶನ್‌ನಲ್ಲಿ ಕೆಲಸ ಮಾಡುವುದನ್ನು ಮುಂದುವರಿಸುವುದು ಅದ್ಭುತವಾಗಿದೆ.

ಜಸ್ಟ್-ಇನ್-ಟೈಮ್ (JIT) - ಈಗ ಡೀಫಾಲ್ಟ್

ಬೆಂಬಲದೊಂದಿಗೆ PostgreSQL 12 ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ LLVM JIT ಸಂಕಲನವನ್ನು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. ಮೊದಲನೆಯದಾಗಿ, ನೀವು ಬೆಂಬಲವನ್ನು ಪಡೆಯುತ್ತೀರಿ ಜೆಐಟಿ ಕೆಲವು ಆಂತರಿಕ ಕಾರ್ಯಾಚರಣೆಗಳಿಗಾಗಿ, ಮತ್ತು ಎರಡನೆಯದಾಗಿ, ಆಯ್ದ ಪಟ್ಟಿಗಳಲ್ಲಿ (ನೀವು ಆಯ್ಕೆ ಮಾಡಿದ ನಂತರ ಹೊಂದಿರುವ) ಅಭಿವ್ಯಕ್ತಿಗಳೊಂದಿಗೆ ಪ್ರಶ್ನೆಗಳು (ಸರಳವಾದ ಉದಾಹರಣೆಯೆಂದರೆ x + y)

PostgreSQL 12 ರಲ್ಲಿ JIT ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸಲ್ಪಟ್ಟಿರುವುದರಿಂದ, ಕಾರ್ಯಕ್ಷಮತೆ ತನ್ನದೇ ಆದ ಮೇಲೆ ಸುಧಾರಿಸುತ್ತದೆ, ಆದರೆ JIT ಅನ್ನು ಪರಿಚಯಿಸಿದ PostgreSQL 11 ನಲ್ಲಿ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಪರೀಕ್ಷಿಸಲು ನಾನು ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ, ಪ್ರಶ್ನೆಯ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಅಳೆಯಲು ಮತ್ತು ನೀವು ಏನನ್ನಾದರೂ ಟ್ಯೂನ್ ಮಾಡಬೇಕೇ ಎಂದು ನೋಡಲು.

PostgreSQL 12 ನಲ್ಲಿನ ಉಳಿದ ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳ ಬಗ್ಗೆ ಏನು?

PostgreSQL 12 ಸ್ಟಾಂಡರ್ಡ್ SQL/JSON ರೂಟ್ ಎಕ್ಸ್‌ಪ್ರೆಶನ್‌ಗಳನ್ನು ಬಳಸಿಕೊಂಡು JSON ಡೇಟಾವನ್ನು ಪರೀಕ್ಷಿಸುವ ಸಾಮರ್ಥ್ಯದಿಂದ ಹಿಡಿದು ಪ್ಯಾರಾಮೀಟರ್‌ನೊಂದಿಗೆ ಬಹು-ಅಂಶದ ದೃಢೀಕರಣದವರೆಗೆ ಹಲವಾರು ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಹೊಂದಿದೆ. clientcert=verify-full, ಕಾಲಮ್‌ಗಳನ್ನು ರಚಿಸಲಾಗಿದೆ ಮತ್ತು ಇನ್ನಷ್ಟು. ಪ್ರತ್ಯೇಕ ಪೋಸ್ಟ್ಗೆ ಸಾಕು.

PostgreSQL 10 ನಂತೆ, PostgreSQL 12 ಅಪ್‌ಗ್ರೇಡ್ ಮಾಡಿದ ತಕ್ಷಣ ಒಟ್ಟಾರೆ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸುತ್ತದೆ. ನೀವು ಸಹಜವಾಗಿ, ನಿಮ್ಮದೇ ಆದ ಮಾರ್ಗವನ್ನು ಹೊಂದಬಹುದು - ನಾನು PostgreSQL 10 ನೊಂದಿಗೆ ಮಾಡಿದಂತೆ ಸುಧಾರಣೆಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವ ಮೊದಲು ಉತ್ಪಾದನಾ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಇದೇ ರೀತಿಯ ಪರಿಸ್ಥಿತಿಗಳಲ್ಲಿ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಪರೀಕ್ಷಿಸಿ. PostgreSQL 12 ಈಗಾಗಲೇ ನಾನು ನಿರೀಕ್ಷಿಸಿದ್ದಕ್ಕಿಂತ ಹೆಚ್ಚು ಸ್ಥಿರವಾಗಿದ್ದರೂ ಸಹ, ಪರೀಕ್ಷೆಯಲ್ಲಿ ಸೋಮಾರಿಯಾಗಬೇಡಿ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಸಂಪೂರ್ಣವಾಗಿ, ಉತ್ಪಾದನೆಗೆ ಬಿಡುಗಡೆ ಮಾಡುವ ಮೊದಲು.

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ