सोमवार, 19 मार्च 2018

MySQL 8.0.4 आरसी

MySQL 8.0.4 आरसी को अभी " पूर्व-सामान्य उपलब्धता ड्राफ्ट: 2018-03-19 " के रूप में जारी किया गया था। 

मैंने एक त्वरित तिरछी नज़र लेने का फैसला किया और यहां मेरे इंप्रेशन को नोट किया। इनमें से कुछ बहुत पुरानी खबर हैं क्योंकि इस रिलीज के बारे में थोड़ी देर के बारे में बात की गई है लेकिन मैंने अपने विचारों को वैसे भी जोड़ा।

पहली बात मैंने देखा कि अद्यतन किया गया mysql क्लाइंट का उपयोग करने का एक सरल मुद्दा था मेरे पुराने संस्करण अभी भी मेरे रास्ते में था जिसके परिणामस्वरूप

ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded
इतना आसान तय है और सुनिश्चित करें कि आप वैध अपडेट किए गए mysql क्लाइंट का उपयोग कर रहे हैं। बेशक अन्य विकल्प mysql_native_password पर प्रमाणीकरण प्लग-इन को बदलना पसंद करते हैं, लेकिन परेशान क्यों हैं, सुरक्षित विधि का उपयोग करें यह सुरक्षा के लिए बहुत अच्छी वृद्धि है, इसलिए इस संबंध में हैरान मत हो, अगर आपके पास इस अधिक सुरक्षित विधि का उपयोग करते हुए अपने कनेक्शन मिलते समय कुछ कनेक्शन समस्याएं हैं


Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 36
Server version: 8.0.4-rc-log

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

तो पहले बहुत ही शांत वृद्धि ...

mysql> show create table user\G
*************************** 1. row ***************************
तालिका: उपयोगकर्ता
तालिका बनाएँ: टैब बनाएँ `उपयोगकर्ता '(
`होस्ट` कक्ष (60) कॉललेट यूटीएफ 8_बीन नल डिफॉल्ट '',
`उपयोगकर्ता` चार (32) COLLATE utf8_bin नल डिफॉल्ट '',
`चयन करें_प्रार्थी` ('एन', 'वाई') वर्ण सेट करें utf8 नल डिफॉल्ट 'एन',
`Insert_priv` enum ('N', 'Y') वर्ण सेट UTF8 नहीं है, NULL DEFAULT 'N',
`Update_priv` enum ('N', 'Y') वर्ण सेट UTF8 नल डिफॉल्ट 'एन',
`Delete_priv` enum ('N', 'Y') वर्ण सेट करें utf8 नहीं है नल डिफॉल्ट 'एन',
`Create_priv` enum ('N', 'Y') वर्ण सेट यूटीएफ 8 नल डिफॉल्ट 'एन',
`ड्रॉप_परिव एन्म '(' एन ',' वाई ') वर्ण सेट यूटीएफ 8 नल डिफॉल्ट' एन ',
`पुनः लोड_प्रार्थी 'एन्यूम (' एन ',' वाई ') वर्ण सेट यूटीएफ 8 नल डिफॉल्ट एन',
'शटडाउन_प्रिट' एन्यूम ('एन', 'वाई') वर्ण सेट यूटीएफ 8 नल डिफॉल्ट एन ',
`Process_priv` enum ('N', 'Y') वर्ण सेट UTF8 नल डिफॉल्ट 'एन',
`File_priv` enum ('N', 'Y') वर्ण सेट UTF8 नल डिफॉल्ट 'एन',
`Grant_priv` enum ('N', 'Y') वर्ण सेट UTF8 नल डिफॉल्ट 'एन',
`संदर्भ_प्रावित` एन्यूम ('एन', 'वाई') वर्ण सेट यूटीएफ 8 नल डिफॉल्ट 'एन',
`इंडेक्स_परिव एन्म '(' एन ',' वाई ') टाइपकर्ता सेट यूटीएफ 8 नल डिफॉल्ट' एन '
`Alter_priv` enum ('N', 'Y') वर्ण सेट UTF8 नल डिफॉल्ट 'एन',
`Show_db_priv` enum ('N', 'Y') वर्ण सेट UTF8 नल डिफॉल्ट 'एन',
`सुपर_परिव 'एन्यूम (' एन ',' वाई ') वर्ण सेट यूटीएफ 8 नल डिफॉल्ट एन',
`Create_tmp_table_priv` enum ('N', 'Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Lock_tables_priv` enum ('N', 'Y') टाइपकर्ता सेट अप utf8 नहीं है नल डिफॉल्ट 'एन',
`Execute_priv` enum ('N', 'Y') वर्ण सेट UTF8 नल डिफॉल्ट 'एन',
`Repl_slave_priv` enum ('N', 'Y') वर्ण सेट यूटीएफ 8 नल डिफॉल्ट 'एन',
`Repl_client_priv` enum ('N', 'Y') वर्ण सेट करें utf8 नहीं है, नल डिफॉल्ट 'एन',
`Create_view_priv` enum ('N', 'Y') वर्ण सेट UTF8 नल डिफॉल्ट 'एन',
`Show_view_priv` enum ('N', 'Y') वर्ण सेट यूटीएफ 8 नल डिफॉल्ट 'एन',
`Create_routine_priv` enum ('N', 'Y') वर्ण सेट यूटीएफ 8 नल डिफॉल्ट 'एन',
`Alter_routine_priv` enum ('N', 'Y') वर्ण सेट UTF8 नल डिफॉल्ट 'एन',
`Create_user_priv` enum ('N', 'Y') वर्ण सेट करें utf8 नहीं है नल डिफॉल्ट 'एन',
`Event_priv` enum ('N', 'Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`ट्रिगर_प्रावित` एन्यूम ('एन', 'वाई') वर्ण सेट यूटीएफ 8 नल डिफॉल्ट एन ',
`Create_tablespace_priv` enum ('N', 'Y') वर्ण सेट UTF8 नल डिफॉल्ट 'एन',
`ssl_type` enum ('', 'ANY', 'X509', 'निर्दिष्ट') वर्ण सेट यूटीएफ 8 नल डिफॉल्ट '',
`ssl_cipher` ब्लॉब नहीं नल,
`x509_आईसीयूआरयूआर 'धधकते नल,
`x509_ विषयक 'बूँद नहीं शून्य,
`max_questions` int (11) अहस्ताक्षरित नहीं शून्य डिफ़ॉल्ट '0',
`max_updates` int (11) अहस्ताक्षरित नहीं नल डिफ़ॉल्ट '0',
`max_connections` int (11) अहस्ताक्षरित नहीं नल डिफ़ॉल्ट '0',
`max_user_connections` int (11) अहस्ताक्षरित नहीं नल डिफ़ॉल्ट '0',
`प्लगइन` चार (64) COLLATE utf8_bin नल डिफॉल्ट 'caching_sha2_password' नहीं,
`प्रमाणीकरण_स्ट्रिंग` पाठ COLLATE utf8_bin,
`पासवर्ड_अपेक्षित` एन्यूम ('एन', 'वाई') टाइपकर्ता सेट यूटीएफ 8 नल डिफॉल्ट 'एन',
`पासवर्ड_last_changed` टाइमस्टैम्प नाल डिफॉल्ट नल,
`पासवर्ड_लिफ़टाइम 'छोटा (5) अहस्ताक्षरित डिफॉल्ट नल,
`account_locked` enum ('एन', 'वाई') वर्ण सेट यूटीएफ 8 नल डिफॉल्ट एन ',
`Create_role_priv` enum ('N', 'Y') वर्ण सेट UTF8 नहीं है, NULL DEFAULT 'N',
`Drop_role_priv` enum ('N', 'Y') वर्ण सेट UTF8 नहीं है, NULL DEFAULT 'N',
`पासवर्ड_reuse_history` छोटा (5) अहस्ताक्षरित डिफॉल्ट नल,
`पासवर्ड_रेउज़_टाइम` छोटा (5) अहस्ताक्षरित डिफॉल्ट नल,
प्राथमिक कुंजी (`होस्ट ',` उपयोगकर्ता`)
) / *! 50100 टैबिलस्पेस `mysql` * / इंजन = InnoDB DEFAULT चार्सेट = utf8 COLLATE = utf8_bin STATS_PERSISTENT = 0 COMMENT = 'उपयोगकर्ता और वैश्विक विशेषाधिकार'
सेट में 1 पंक्ति (0.00 सेकंड)

हाँ यूजर टेबल InnoDB है और खुद की टेबलस्पेस है

नए डाटा डिक्शनरी के अतिरिक्त के साथ आप अब Information_schema परिवर्तनों को नोटिस करेंगे।
इसलिए एक सरल उदाहरण के रूप में स्तंभ तालिका ऐतिहासिक रूप से एक दृश्य नहीं रही है लेकिन अब कई अन्य लोगों के साथ बदल दिया गया है, जैसा कि आप प्रदान किए गए यूआरएल के माध्यम से देख सकते हैं।


mysql> show create table COLUMNS \G
*************************** 1. row ***************************
देखें: COLUMNS
दृश्य बनाएं: एल्गोरिथ्म बनाएं = अनुपयुक्त DEFINER = 'mysql.infoschema` @ `लोकलहोस्ट`

यह information_schema के साथ प्रदर्शन में मदद करने के लिए किया जाता है लेकिन जानकारी के लिए प्रति क्वेरी अस्थायी तालिका क्रिएशन को निकालता है।

प्रलेखन के अध्याय 14 इस पर गहराई से चला जाता है, नीचे दी गई यूआरएल आपको अधिक जानकारी प्राप्त करने में मदद करेगी और भावी ब्लॉग पोस्ट इस पर अधिक छू सकती हैं।
पहले वर्णित डेटा शब्दकोश तब भी परमाणु डेटा परिभाषा भाषा (डीडीएल) बयान या परमाणु डीडीएल की क्षमता की ओर जाता है


यदि आप एक नए MySQL 8.0 उदाहरण के लिए प्रतिकृति सेट करने से पहले अपने प्रश्नों की समीक्षा नहीं करते हैं, तो यह कुछ लेन-देन की संभावना है। मैं कहता हूं कि टेबल रखरखाव का प्रबंधन कैसे प्रभावित हो सकता है। यदि आप "यदि मौजूद हैं" के साथ साफ प्रश्न लिखते हैं तो यह एक बड़ी समस्या नहीं होगी। कुल मिलाकर यह अधिक लेनदेन आधारित सुविधा है जो आपके डेटा और रोलबैक विकल्पों की रक्षा करती है।


संसाधन प्रबंधन बहुत ही दिलचस्प दिखता है और मुझे इस पर ध्यान देने के लिए अधिक समय लेना होगा क्योंकि यह MySQL 8.0 के साथ एक नई सुविधा है। कुल मिलाकर आप समूह निर्दिष्ट कर सकते हैं और अब क्वेरी की प्राथमिकता निर्धारित नहीं करनी चाहिए लेकिन अपने समूह को यह परिभाषित करना चाहिए कि क्वेरी को किस प्रकार व्यवहार करना चाहिए और उसके लिए आवंटित संसाधन होना चाहिए।

mysql> select @@version;
+------------+
| @@ संस्करण |
+ ------------ +
| 5.7.16-लॉग |
+ ------------ +
सेट में 1 पंक्ति (0.00 सेकंड)

mysql> desc INFORMATION_SCHEMA.RESOURCE_GROUPS;
त्रुटि 110 9 (42 एस 02): सूचना_एसकेमा में अज्ञात तालिका 'RESOURCE_GROUPS'

mysql> @@ संस्करण का चयन करें;
+ -------------- +
| @@ संस्करण |
+ -------------- +
| 8.0.4-आरसी-लॉग |
+ -------------- +
सेट में 1 पंक्ति (0.00 सेकंड)

mysql> desc INFORMATION_SCHEMA.RESOURCE_GROUPS;
+ ------------------------ + ----------------------- + ------ + ----- + --------- + ------- +
| फील्ड | प्रकार | नल | कुंजी | डिफ़ॉल्ट | अतिरिक्त |
+ ------------------------ + ----------------------- + ------ + ----- + --------- + ------- +
| RESOURCE_GROUP_NAME | varchar (64) | नहीं | | नल | |
| RESOURCE_GROUP_TYPE | enum ('प्रणाली', 'उपयोगकर्ता') | नहीं | | नल | |
| RESOURCE_GROUP_ENABLED | टिनिंट (1) | नहीं | | नल | |
| VCPU_IDS | ब्लॉब | हां | | नल | |
| THREAD_PRIORITY | इंट (11) | नहीं | | नल | |
+ ------------------------ + ----------------------- + ------ + ----- + --------- + ------- +
सेट में 5 पंक्तियां (0.00 सेकंड)


अपने इनोडाबी बफर पूल कैश में अधिक जानकारी उस इंडेक्स के संबंध में है जो अब उपलब्ध है।

mysql> desc INFORMATION_SCHEMA.INNODB_CACHED_INDEXES ;
+----------------+---------------------+------+-----+---------+-------+
| फील्ड | प्रकार | नल | कुंजी | डिफ़ॉल्ट | अतिरिक्त |
+ ---------------- + --------------------- + ------ + --- - + --------- + ------- +
| SPACE_ID | int (11) अहस्ताक्षरित | नहीं | | | |
| INDEX_ID | बड़ी बात (21) अहस्ताक्षरित | नहीं | | | |
| N_CACHED_PAGES | बड़ी बात (21) अहस्ताक्षरित | नहीं | | | |
+ ---------------- + --------------------- + ------ + --- - + --------- + ------- +
सेट में 3 पंक्तियां (0.01 सेकंड)


यदि आप अनिश्चित हैं कि इनोडीबी बफर पूल को सेट करने के लिए, लॉग-सीज़ या फ्लश मेसेज, तो MySQL इन उपलब्ध स्मृति के आधार पर आपके लिए सेट करेगा।

innodb_dedicated_server

[mysqld]
innodb-dedicated-server=1

mysql> चुनें @@ innodb_dedicated_server;
+ --------------------------- +
| @@ innodb_dedicated_server |
+ --------------------------- +
| 1 |
+ --------------------------- +

इस सरल परीक्षण ने मेरे innodb_buffer_pool_size को 6 जीबी तक सेट किया है, उदाहरण के लिए जब डिफ़ॉल्ट 128MB है

कई JSON परिवर्धन और साथ ही नियमित अभिव्यक्ति परिवर्तन भी किए गए हैं। दोनों जो आशाजनक दिखते हैं

इस रिलीज के मुकाबले एकमात्र प्रतिकृति संवर्धन ही है जो अब कॉम्पैक्ट बाइनरी प्रारूप का उपयोग करते हुए जेएसओएन दस्तावेज़ों के आंशिक अद्यतनों के द्विआधारी लॉगिंग का समर्थन करता है।

हालांकि कुल मिलाकर कई विशेषताएं उपलब्ध हैं (आप यहां उनके बारे में सब कुछ पढ़ सकते हैं), जिनमें से एक (मैं चाहता था कि मेरा ग्राहक कल था) चैनल प्रति प्रतिकृति फाइलर्स है।
मेरे परीक्षण के उदाहरण में पहले से ही द्विआधारी लॉग सक्षम थे, लेकिन वे अब टेबल आधारित बनाम फ़ाइल आधारित मास्टर और गुलाम जानकारी के साथ डिफ़ॉल्ट रूप से चालू हैं (डिफ़ॉल्ट के आधार पर उस लेनदेन के बड़े प्रशंसक)

कुल मिलाकर यह ध्यान रखें कि यह इस रिलीज पर पहली नज़र है और उस पर बहुत उच्च स्तर के विचार, कई अन्य परिवर्तन मौजूद हैं। इस रिलीज के बारे में अन्य ब्लॉग पोस्ट्स के साथ-साथ मैनुअल और रिलीज नोट्स भी देखेंगे। निश्चित रूप से डाउनलोड और समीक्षा करें क्योंकि प्रशासन, सुरक्षा और नकल देखने के बिंदु के लिए यह बहुत आशाजनक है।

कोई टिप्पणी नहीं:

एक टिप्पणी भेजें