কম্পিউটার টিউটোরিয়াল

MySQL-এ "Lock wait timeout exceeded" ডিবাগ করা

"Lock wait timeout exceeded" সমস্যা কিছু থ্রেডের কারণে হয়। যদি একটি থ্রেড অনেকক্ষণ ধরে কিছু রেকর্ড ধরে রাখে, অর্থাৎ থ্রেডটি টাইমআউট পার করেছে।

সব ডিটেইল देखने নিচের কোয়েরি চালান:

mysql> SHOW ENGINE INNODB STATUS;

আউটপুট (সংক্ষিপ্ত):

=====================================
2018-10-23 09:55:05 0x19e8 INNODB MONITOR OUTPUT
=====================================
...
------------
TRANSACTIONS
------------
Trx id counter 21000
...
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION 283438498772800, not started
0 lock struct(s), heap size 1136, 0 row lock(s)
...
----------------------------
END OF INNODB MONITOR OUTPUT
============================

উপরের আউটপুট থ্রেড এবং I/O সম্পর্কিত সব ডিটেইল দেখায়। লক ওয়েইট টাইমআউট ডিবাগ করতে INFORMATION_SCHEMA.INNODB_TRX, INNODB_LOCKS, INNODB_LOCK_WAITS (MySQL 5.7) বা PERFORMANCE_SCHEMA (MySQL 8.0+) ব্যবহার করুন। innodb_lock_wait_timeout ভেরিয়েবল (ডিফল্ট ৫০ সেকেন্ড) বাড়ানো সম্ভব কিন্তু মূল কারণ (লম্বা ট্রানজেকশন, মিসিং ইন্ডেক্স, ডেডলক) সমাধান করা উচিত।

  1. উইন্ডোজ ১০ লক স্ক্রিন টাইমআউট সহজে পরিবর্তন করার উপায়

  2. MySQL-এ LIMIT OFFSET দিয়ে রো বাদ দিয়ে (Skip) রেকর্ড বের করা

  3. উইন্ডোজ ১০ লক স্ক্রিন টাইমআউট বাড়ানোর উপায়

  4. উইন্ডোজ ১০ লক স্ক্রিন টাইমআউট সেটিংস কীভাবে বাড়াবেন