এটি এই প্রশ্নের সাথে সম্পর্কিত । এটি InnoDB টেবিলগুলির জন্য আরও ভাল পারফরম্যান্স পেতে সহায়তা করে।
মাইএসকিউএল ম্যানুয়াল অনুসারে , innodb_flush_log_at_trx_commit
এটি একটি গ্লোবাল ডায়নামিক ভেরিয়েবল। সুতরাং, আমি সেট গ্লোবাল কমান্ড ব্যবহার করে এটি পরিবর্তন করতে পারি এবং মনে হচ্ছে এটি কাজ করছে।
mysql> SET GLOBAL innodb_flush_log_at_trx_commit=2;
Query OK, 0 rows affected
mysql> SHOW VARIABLES LIKE 'innodb_flush_log_at_trx_commit';
+--------------------------------+-------+
| Variable_name | Value |
+--------------------------------+-------+
| innodb_flush_log_at_trx_commit | 2 |
+--------------------------------+-------+
1 row in set
কিন্তু, এটি আসল মাইএসকিউএল সেটিংস পরিবর্তন করে নি। আমি যখন my.cnf আপডেট করেছি এবং মাইএসকিউএল সার্ভারটি পুনরায় চালু করেছি তখন এটি কার্যকর হয়েছিল। সুতরাং, আমি রান সময়ে গ্লোবাল ভেরিয়েবল পরিবর্তন করতে পারি না?
আমি ডিফল্ট মানটি পছন্দ করি innodb_flush_log_at_trx_commit=1
তবে একটি বৃহত ডাটাবেস দ্রুত পাওয়ার জন্য পুনরুদ্ধার প্রক্রিয়া চালানোর আগে আমার এটি পরিবর্তন করতে হবে। প্রক্রিয়াটি শেষ হয়ে গেলে, আমি মানটি আবার পরিবর্তন করতে চাই run এটি রান টাইমে কি সম্ভব?
আমার ভাগ করা হোস্টিং সার্ভারে আমার c.cnf এ অ্যাক্সেস নেই ।
SET GLOBAL max_connections = 1000;
এবং যখন আমিSHOW VARIABLES LIKE 'max_connections';
পুরনো মানটি দেখতে দৌড়ে যাই আমি লগ আউট এবং ফিরে না আসা পর্যন্ত বাদামকে চালিত করব + এই দৃষ্টিভঙ্গির জন্য যা সম্মতিযুক্ত এবং প্রায়শই ভুলে যায়।