Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

E_WARNING:STMT_PREPARE पैकेट भेजते समय त्रुटि। पीआईडी=*

पुन:स्लोलॉग:हमें अपना my.cnf दिखाएं। [mysqld] . में परिवर्तन थे खंड? इसका परीक्षण SELECT SLEEP(12); . द्वारा करें , फिर फ़ाइल और तालिका दोनों में देखें।

क्वेरी खोजने का वैकल्पिक तरीका:चूंकि क्वेरी में कई मिनट लग रहे हैं, इसलिए SHOW FULL PROCESSLIST; करें जब आपको लगता है कि यह चल रहा होगा।

आपके पास कितना रैम है? नहीं करें max_allowed_packet=300M have है जब तक आपके पास कम से कम 30GB RAM न हो। अन्यथा आप अदला-बदली (या दुर्घटनाग्रस्त होने) का जोखिम उठा रहे हैं। उस सेटिंग को 1% RAM के नीचे रखें।

ट्यूनेबल के आगे के विश्लेषण के लिए, कृपया (1) RAM आकार, (2) SHOW VARIABLES; प्रदान करें और (3) SHOW GLOBAL STATUS;

पुनः deleted_at :आपके द्वारा दिया गया लिंक "डिलीट किया गया कॉलम एक अच्छा इंडेक्स कैंडिडेट नहीं है" से शुरू होता है। आपने इसका गलत अर्थ निकाला। यह सिंगल-कॉलम के बारे में बात कर रहा है INDEX(deleted_at) . मैं एक समग्र सूचकांक का सुझाव दे रहा हूं जैसे कि INDEX(contact_id, job_class_name, execute_at, deleted_at)

एक छोटी सी मेज पर एक साधारण क्वेरी के लिए 158 सेकंड? ऐसा हो सकता है कि बहुत सारे अन्य हों सामान चल रहा है। PROCESSLIST प्राप्त करें ।

पुन:पृथक अनुक्रमणिका बनाम संमिश्र:दो अनुक्रमणिका के बारे में सोचें:INDEX(last_name) और INDEX(first_name) . आप "जेम्स" खोजने के लिए last_name अनुक्रमणिका के माध्यम से फ़्लिप करते हैं, तो आप क्या कर सकते हैं? "रिक" के लिए अन्य अनुक्रमणिका के माध्यम से फ़्लिप करने से आपको मुझे ढूंढने में सहायता नहीं मिलेगी।

वैरिएबल और वैश्विक स्थिति का विश्लेषण

टिप्पणियां:

  • संस्करण:5.7.22-लॉग
  • 1.00 जीबी रैम
  • अपटाइम =16 दिन 10:30:19
  • क्या आप सुनिश्चित हैं कि यह शो ग्लोबल स्टेटस था?
  • आप विंडोज़ पर नहीं चल रहे हैं।
  • 64-बिट संस्करण चल रहा है
  • ऐसा लगता है कि आप पूरी तरह से (या अधिकतर) InnoDB चल रहे हैं।

अधिक महत्वपूर्ण मुद्दे:

innodb_buffer_pool_size -- मुझे लगा कि आपके पास यह 213M पर है, न कि 10M पर। 10M बहुत छोटा है। दूसरी ओर, ऐसा लगता है कि आपके पास उससे कम डेटा है।

चूंकि RAM बहुत छोटी है, इसलिए मैं tmp_table_size और max_heap_table_size और max_allowed_packet को 8M तक छोड़ने की सलाह देता हूं। और निम्न table_open_cache, table_definition_cache, और innodb_open_files को 500 पर छोड़ दें।

एक साथ इतने सारे कनेक्शन का क्या कारण है?

विवरण और अन्य अवलोकन:

( innodb_buffer_pool_size / _ram ) = 10M / 1024M = 0.98% - % RAM का उपयोग InnoDB बफर_पूल के लिए किया जाता है

( innodb_buffer_pool_size ) = 10M -- InnoDB डेटा + इंडेक्स कैशे

( innodb_lru_scan_depth ) = 1,024 -- "InnoDB:page_cleaner:1000ms इच्छित लूप लिया गया ..." lru_scan_depth को कम करके ठीक किया जा सकता है

( Innodb_buffer_pool_pages_free / Innodb_buffer_pool_pages_total ) = 375 / 638 = 58.8% -- बफर_पूल का पीसी वर्तमान में उपयोग में नहीं है-- innodb_buffer_pool_size आवश्यकता से बड़ा है?

( Innodb_buffer_pool_bytes_data / innodb_buffer_pool_size ) = 4M / 10M = 40.0% -- डेटा द्वारा लिए गए बफर पूल का प्रतिशत-- एक छोटा प्रतिशत हो सकता है इंगित करें कि बफ़र_पूल अनावश्यक रूप से बड़ा है।

( innodb_log_buffer_size / _ram ) = 16M / 1024M = 1.6% -- बफरिंग के लिए उपयोग की जाने वाली RAM का प्रतिशत InnoDB लॉग लिखता है।-- RAM के अन्य उपयोगों से बहुत बड़ा लेता है।

( innodb_log_file_size * innodb_log_files_in_group / innodb_buffer_pool_size ) = 48M * 2 / 10M = 960.0% - लॉग आकार का बफ़र_पूल आकार का अनुपात। 50% की सिफारिश की जाती है, लेकिन क्या यह मायने रखता है इसके लिए अन्य गणनाएँ देखें।-- लॉग को बफ़र पूल से बड़ा होने की आवश्यकता नहीं है।

( innodb_flush_method ) = innodb_flush_method = - कैसे InnoDB को OS को ब्लॉक लिखने के लिए कहना चाहिए। डबल बफरिंग से बचने के लिए O_DIRECT या O_ALL_DIRECT (Percona) का सुझाव दें। (कम से कम यूनिक्स के लिए।) O_ALL_DIRECT के बारे में चेतावनी के लिए chrischandler देखें

( innodb_flush_neighbors ) = 1 - डिस्क पर ब्लॉक लिखते समय एक मामूली अनुकूलन।-- SSD ड्राइव के लिए 0 का उपयोग करें; 1 एचडीडी के लिए।

( innodb_io_capacity ) = 200 -- डिस्क पर सक्षम प्रति सेकंड I/O ops . धीमी ड्राइव के लिए 100; कताई ड्राइव के लिए 200; एसएसडी के लिए 1000-2000; RAID कारक से गुणा करें।

( innodb_print_all_deadlocks ) = innodb_print_all_deadlocks = OFF -- क्या सभी गतिरोधों को लॉग करना है.-- यदि आप गतिरोध से ग्रस्त हैं, तो इसे चालू करें. सावधानी:यदि आपके पास बहुत से गतिरोध हैं, तो यह डिस्क पर बहुत कुछ लिख सकता है।

( min( tmp_table_size, max_heap_table_size ) / _ram ) = min( 16M, 16M ) / 1024M = 1.6% - स्मृति तालिका (प्रति तालिका), या एक चयन के अंदर अस्थायी तालिका (कुछ चयन प्रति अस्थायी तालिका) की आवश्यकता होने पर आवंटित करने के लिए रैम का प्रतिशत। बहुत अधिक होने से स्वैपिंग हो सकती है।- tmp_table_size और max_heap_table_size को घटाकर, मान लें, ram का 1%।

( net_buffer_length / max_allowed_packet ) = 16,384 / 16M = 0.10%

( local_infile ) = local_infile = ON -- local_infile =ON एक संभावित सुरक्षा समस्या है

( Select_scan / Com_select ) = 111,324 / 264144 = 42.1% - पूर्ण तालिका स्कैन करने वाले चयनों का%। (संग्रहीत रूटीन द्वारा मूर्ख बनाया जा सकता है।)-- अनुक्रमणिका जोड़ें / प्रश्नों को अनुकूलित करें

( long_query_time ) = 10 -- "धीमी" क्वेरी को परिभाषित करने के लिए कटऑफ (सेकंड)।-- सुझाव 2

( Max_used_connections / max_connections ) = 152 / 151 = 100.7% -- कनेक्शन का चरम%-- max_connections बढ़ाएं और/या प्रतीक्षा_समय कम करें

आपके पास क्वेरी कैश आधा बंद है। आपको query_cache_type =OFF और query_cache_size =0 दोनों सेट करने चाहिए। क्यूसी कोड में (एक अफवाह के अनुसार) एक 'बग' है जो कुछ कोड छोड़ देता है जब तक कि आप उन दोनों सेटिंग्स को बंद नहीं करते।

असामान्य रूप से छोटा:

( Innodb_pages_read + Innodb_pages_written ) / Uptime = 0.186
Created_tmp_files = 0.015 /HR
Handler_write = 0.21 /sec
Innodb_buffer_pool_bytes_data = 3 /sec
Innodb_buffer_pool_pages_data = 256
Innodb_buffer_pool_pages_total = 638
Key_reads+Key_writes + Innodb_pages_read+Innodb_pages_written+Innodb_dblwr_writes+Innodb_buffer_pool_pages_flushed = 0.25 /sec
Table_locks_immediate = 2.8 /HR
Table_open_cache_hits = 0.44 /sec
innodb_buffer_pool_chunk_size = 5MB

असामान्य रूप से बड़ा:

Com_create_db = 0.41 /HR
Com_drop_db = 0.41 /HR
Connection_errors_peer_address = 2
Performance_schema_file_instances_lost = 9
Ssl_default_timeout = 500

असामान्य तार:

ft_boolean_syntax = + -><()~*:&
have_ssl = YES
have_symlink = DISABLED
innodb_fast_shutdown = 1
optimizer_trace = enabled=off,one_line=off
optimizer_trace_features = greedy_search=on, range_optimizer=on, dynamic_range=on, repeated_subselect=on
session_track_system_variables = time_zone, autocommit, character_set_client, character_set_results, character_set_connection
slave_rows_search_algorithms = TABLE_SCAN,INDEX_SCAN


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. php AJAX का उपयोग करके 3 निर्भर ड्रॉपडाउन सूची बनाएं mysql

  2. MySQL - क्या मुझे प्रत्येक बच्चे की मेज पर बहु-स्तंभ प्राथमिक कुंजी का उपयोग करना चाहिए?

  3. Yii - अस्थायी तालिका बनाएं और अगली क्वेरी में इसका उपयोग करने से सामान्य त्रुटि उत्पन्न होती है:2014 क्वेरी निष्पादित नहीं कर सकता, जबकि अन्य असंबद्ध क्वेरी सक्रिय हैं

  4. MySQL बूल और बूलियन कॉलम डेटा प्रकारों में क्या अंतर है?

  5. MySQL और MariaDB ProxySQL के साथ संतुलन लोड करें