We're having a problem that makes the site either painfully slow or completely unreachable. When I ran top, mysqld was using over 700% of CPU. Running processlist showed a number of threads Waiting for table level lock.
Code
mysql -u root -p -e "SHOW PROCESSLIST;"
Enter password:
+------+------+-----------+------------+---------+------+------------------------------+------------------------------------------------------------------------------------------------------+
| Id   | User | Host      | db         | Command | Time | State                        | Info                                                                                                 |
+------+------+-----------+------------+---------+------+------------------------------+------------------------------------------------------------------------------------------------------+
| 5172 | ubb  | localhost | ubbthreads | Query   |    3 | Waiting for table level lock | SELECT t1.POST_ID,t1.POST_PARENT_ID,t1.POST_POSTED_TIME,t2.USER_DISPLAY_NAME,t1.POST_SUBJECT,t1.POST |
| 5173 | ubb  | localhost | ubbthreads | Query   |    3 | Waiting for table level lock | SELECT t1.POST_ID,t1.POST_PARENT_ID,t1.POST_POSTED_TIME,t2.USER_DISPLAY_NAME,t1.POST_SUBJECT,t1.POST |
| 5175 | ubb  | localhost | ubbthreads | Query   |    3 | Waiting for table level lock | SELECT t1.POST_ID,t1.POST_PARENT_ID,t1.POST_POSTED_TIME,t2.USER_DISPLAY_NAME,t1.POST_SUBJECT,t1.POST |
| 5176 | ubb  | localhost | ubbthreads | Query   |    2 | Waiting for table level lock | SELECT USER_ID, USER_DISPLAY_NAME
            FROM sbf_USERS
            WHERE USER_ID IN ('45005')                  |
| 5177 | ubb  | localhost | ubbthreads | Query   |    3 | Waiting for table level lock | SELECT t1.POST_ID,t1.POST_PARENT_ID,t1.POST_POSTED_TIME,t2.USER_DISPLAY_NAME,t1.POST_SUBJECT,t1.POST |
| 5180 | ubb  | localhost | ubbthreads | Query   |    3 | Waiting for table level lock | SELECT t1.POST_ID,t1.POST_PARENT_ID,t1.POST_POSTED_TIME,t2.USER_DISPLAY_NAME,t1.POST_SUBJECT,t1.POST |
| 5183 | ubb  | localhost | ubbthreads | Query   |    2 | Waiting for table level lock | SELECT USER_ID, USER_DISPLAY_NAME
            FROM sbf_USERS
            WHERE USER_ID IN ('6248')                   |
| 5184 | ubb  | localhost | ubbthreads | Query   |    3 | Waiting for table level lock | SELECT t1.POST_ID,t1.POST_PARENT_ID,t1.POST_POSTED_TIME,t2.USER_DISPLAY_NAME,t1.POST_SUBJECT,t1.POST |
| 5185 | ubb  | localhost | ubbthreads | Query   |    3 | Waiting for table level lock | SELECT t1.POST_ID,t1.POST_PARENT_ID,t1.POST_POSTED_TIME,t2.USER_DISPLAY_NAME,t1.POST_SUBJECT,t1.POST |
| 5190 | ubb  | localhost | ubbthreads | Query   |    2 | Waiting for table level lock | SELECT USER_ID, USER_DISPLAY_NAME
            FROM sbf_USERS
            WHERE USER_ID IN ('12074')                  |
| 5191 | ubb  | localhost | ubbthreads | Query   |    2 | Waiting for table level lock | SELECT USER_ID, USER_DISPLAY_NAME
            FROM sbf_USERS
            WHERE USER_ID IN ('28319')                  |
| 5192 | ubb  | localhost | ubbthreads | Query   |    3 | Waiting for table level lock | SELECT t1.POST_ID,t1.POST_PARENT_ID,t1.POST_POSTED_TIME,t2.USER_DISPLAY_NAME,t1.POST_SUBJECT,t1.POST |
| 5193 | ubb  | localhost | ubbthreads | Query   |    3 | Waiting for table level lock | SELECT USER_ID, USER_DISPLAY_NAME
            FROM sbf_USERS
            WHERE USER_ID IN ('1504')                   |
| 5194 | ubb  | localhost | ubbthreads | Query   |    3 | Waiting for table level lock | SELECT USER_ID, USER_DISPLAY_NAME
            FROM sbf_USERS
            WHERE USER_ID IN ('15338')                  |
| 5195 | ubb  | localhost | ubbthreads | Query   |    2 | Waiting for table level lock | SELECT t1.POST_ID,t1.POST_PARENT_ID,t1.POST_POSTED_TIME,t2.USER_DISPLAY_NAME,t1.POST_SUBJECT,t1.POST |
| 5198 | ubb  | localhost | ubbthreads | Query   |    3 | Waiting for table level lock | SELECT t1.POST_ID,t1.POST_PARENT_ID,t1.POST_POSTED_TIME,t2.USER_DISPLAY_NAME,t1.POST_SUBJECT,t1.POST |
| 5199 | ubb  | localhost | ubbthreads | Query   |    2 | Waiting for table level lock | SELECT USER_ID, USER_DISPLAY_NAME
            FROM sbf_USERS
            WHERE USER_ID IN ('4378')                   |
| 5203 | ubb  | localhost | ubbthreads | Query   |    2 | Waiting for table level lock | SELECT USER_ID, USER_DISPLAY_NAME
            FROM sbf_USERS
            WHERE USER_ID IN ('7745')                   |
| 5204 | ubb  | localhost | ubbthreads | Query   |    2 | Waiting for table level lock | SELECT USER_ID, USER_DISPLAY_NAME
            FROM sbf_USERS
            WHERE USER_ID IN ('12163')                  |
| 5206 | ubb  | localhost | ubbthreads | Query   |    2 | Waiting for table level lock | SELECT USER_ID, USER_DISPLAY_NAME
            FROM sbf_USERS
            WHERE USER_ID IN ('13406')                  |
| 5207 | ubb  | localhost | ubbthreads | Query   |    3 | Waiting for table level lock | SELECT USER_ID, USER_DISPLAY_NAME
            FROM sbf_USERS
            WHERE USER_ID IN ('23098')                  |
| 5208 | ubb  | localhost | ubbthreads | Query   |    2 | Waiting for table level lock | SELECT USER_ID, USER_DISPLAY_NAME
            FROM sbf_USERS
            WHERE USER_ID IN ('1504')                   |
| 5209 | ubb  | localhost | ubbthreads | Query   |    2 | Waiting for table level lock | SELECT t1.POST_ID,t1.POST_PARENT_ID,t1.POST_POSTED_TIME,t2.USER_DISPLAY_NAME,t1.POST_SUBJECT,t1.POST |
| 5210 | ubb  | localhost | ubbthreads | Query   |    2 | Waiting for table level lock | SELECT USER_ID, USER_DISPLAY_NAME
            FROM sbf_USERS
            WHERE USER_ID IN ('15452')                  |
| 5211 | ubb  | localhost | ubbthreads | Query   |    2 | Waiting for table level lock | SELECT USER_ID, USER_DISPLAY_NAME
            FROM sbf_USERS
            WHERE USER_ID IN ('15565')                  |
| 5212 | ubb  | localhost | ubbthreads | Query   |   13 | executing                    | SELECT
            p.POST_ID, u.USER_DISPLAY_NAME, u.USER_IS_BANNED, p.POST_POSTED_TIME, p.POST_POSTER_IP,
 |
| 5213 | ubb  | localhost | ubbthreads | Query   |    7 | executing                    | SELECT
            p.POST_ID, u.USER_DISPLAY_NAME, u.USER_IS_BANNED, p.POST_POSTED_TIME, p.POST_POSTER_IP,
 |
| 5214 | ubb  | localhost | ubbthreads | Query   |    5 | executing                    | SELECT
            p.POST_ID, u.USER_DISPLAY_NAME, u.USER_IS_BANNED, p.POST_POSTED_TIME, p.POST_POSTER_IP,
 |
| 5215 | ubb  | localhost | ubbthreads | Query   |    5 | executing                    | SELECT
            p.POST_ID, u.USER_DISPLAY_NAME, u.USER_IS_BANNED, p.POST_POSTED_TIME, p.POST_POSTER_IP,
 |
| 5217 | ubb  | localhost | ubbthreads | Query   |    5 | executing                    | SELECT
            p.POST_ID, u.USER_DISPLAY_NAME, u.USER_IS_BANNED, p.POST_POSTED_TIME, p.POST_POSTER_IP,
 |
| 5220 | ubb  | localhost | ubbthreads | Query   |    4 | executing                    | SELECT
            p.POST_ID, u.USER_DISPLAY_NAME, u.USER_IS_BANNED, p.POST_POSTED_TIME, p.POST_POSTER_IP,
 |
| 5222 | ubb  | localhost | ubbthreads | Query   |    4 | executing                    | SELECT
            p.POST_ID, u.USER_DISPLAY_NAME, u.USER_IS_BANNED, p.POST_POSTED_TIME, p.POST_POSTER_IP,
 |
| 5223 | ubb  | localhost | ubbthreads | Query   |    4 | executing                    | SELECT
            p.POST_ID, u.USER_DISPLAY_NAME, u.USER_IS_BANNED, p.POST_POSTED_TIME, p.POST_POSTER_IP,
 |
| 5224 | ubb  | localhost | ubbthreads | Query   |    4 | executing                    | SELECT
            p.POST_ID, u.USER_DISPLAY_NAME, u.USER_IS_BANNED, p.POST_POSTED_TIME, p.POST_POSTER_IP,
 |
| 5225 | ubb  | localhost | ubbthreads | Query   |    4 | executing                    | SELECT
            p.POST_ID, u.USER_DISPLAY_NAME, u.USER_IS_BANNED, p.POST_POSTED_TIME, p.POST_POSTER_IP,
 |
| 5229 | ubb  | localhost | ubbthreads | Query   |    3 | executing                    | SELECT
            p.POST_ID, u.USER_DISPLAY_NAME, u.USER_IS_BANNED, p.POST_POSTED_TIME, p.POST_POSTER_IP,
 |
| 5230 | ubb  | localhost | ubbthreads | Query   |    3 | executing                    | SELECT
            p.POST_ID, u.USER_DISPLAY_NAME, u.USER_IS_BANNED, p.POST_POSTED_TIME, p.POST_POSTER_IP,
 |
| 5231 | ubb  | localhost | ubbthreads | Query   |    2 | Waiting for table level lock | SELECT
            p.POST_ID, u.USER_DISPLAY_NAME, u.USER_IS_BANNED, p.POST_POSTED_TIME, p.POST_POSTER_IP,
 |
| 5232 | ubb  | localhost | ubbthreads | Query   |    2 | Waiting for table level lock | SELECT
            p.POST_ID, u.USER_DISPLAY_NAME, u.USER_IS_BANNED, p.POST_POSTED_TIME, p.POST_POSTER_IP,
 |
| 5233 | ubb  | localhost | ubbthreads | Query   |    2 | Waiting for table level lock | SELECT
            p.POST_ID, u.USER_DISPLAY_NAME, u.USER_IS_BANNED, p.POST_POSTED_TIME, p.POST_POSTER_IP,
 |
| 5234 | ubb  | localhost | ubbthreads | Query   |    3 | Waiting for table level lock | SELECT
            p.POST_ID, u.USER_DISPLAY_NAME, u.USER_IS_BANNED, p.POST_POSTED_TIME, p.POST_POSTER_IP,
 |
| 5235 | ubb  | localhost | ubbthreads | Query   |    2 | Waiting for table level lock | SELECT
            p.POST_ID, u.USER_DISPLAY_NAME, u.USER_IS_BANNED, p.POST_POSTED_TIME, p.POST_POSTER_IP,
 |
| 5236 | ubb  | localhost | ubbthreads | Query   |    2 | Waiting for table level lock | SELECT
            p.POST_ID, u.USER_DISPLAY_NAME, u.USER_IS_BANNED, p.POST_POSTED_TIME, p.POST_POSTER_IP,
 |
| 5237 | ubb  | localhost | ubbthreads | Query   |    3 | Waiting for table level lock | UPDATE sbf_USERS
                    SET USER_SESSION_ID = 'dd458505749b2941217ddd59394240e8'
                    WHERE USER_ID =  |
| 5238 | ubb  | localhost | ubbthreads | Query   |    3 | Waiting for table level lock | SELECT
                t2.USER_TOPIC_VIEW_TYPE, t2.USER_TOPICS_PER_PAGE, t2.USER_POSTS_PER_TOPIC, t2.USER_SHOW_S |
| 5239 | ubb  | localhost | ubbthreads | Query   |    3 | Waiting for table level lock | SELECT
                t2.USER_TOPIC_VIEW_TYPE, t2.USER_TOPICS_PER_PAGE, t2.USER_POSTS_PER_TOPIC, t2.USER_SHOW_S |
| 5240 | ubb  | localhost | ubbthreads | Query   |    3 | Waiting for table level lock | SELECT
                t2.USER_TOPIC_VIEW_TYPE, t2.USER_TOPICS_PER_PAGE, t2.USER_POSTS_PER_TOPIC, t2.USER_SHOW_S |
| 5241 | ubb  | localhost | ubbthreads | Query   |    3 | Waiting for table level lock | SELECT
                t1.USER_ID, t1.USER_DISPLAY_NAME, t1.USER_PASSWORD, t1.USER_SESSION_ID, t1.USER_MEMBERSHI |
| 5242 | ubb  | localhost | ubbthreads | Query   |    2 | Waiting for table level lock | SELECT
                t2.USER_TOPIC_VIEW_TYPE, t2.USER_TOPICS_PER_PAGE, t2.USER_POSTS_PER_TOPIC, t2.USER_SHOW_S |
| 5243 | ubb  | localhost | ubbthreads | Query   |    2 | Waiting for table level lock | SELECT
                t2.USER_TOPIC_VIEW_TYPE, t2.USER_TOPICS_PER_PAGE, t2.USER_POSTS_PER_TOPIC, t2.USER_SHOW_S |
| 5244 | root | localhost | NULL       | Query   |    0 | init                         | SHOW PROCESSLIST                                                                                     |
+------+------+-----------+------------+---------+------+------------------------------+------------------------------------------------------------------------------------------------------+
All our tables are MyISAM. Would converting them to INNODB be beneficial?


The Stovebolt Geek
https://www.stovebolt.com/ubbthreads/ubbthreads.php

Server Information
UBB.threads Version 8.0.0
Release 20240826
Server OS Linux
Server Load 0.11
Web Server Apache/2.4.37
PHP Version 8.3.11
MYSQL Version 8.0.39
Database Size 1.82 GB