Става дума за база данни с около 22 000 записа в нея. Базата няма индекси, и търсенето на запис отнема около 10 сек. Освен това браузването на сайта е също много бавно, независимо дали се използва търсачката или не.
Днес след неколкократно предупреждение, хоста блокира достъпа до базата, поради многократно и сериозно превишаване на лимита от 25 % процесорно време.
Бихте ли дали пример, как да сложа индекси на базата, така, че малко да се облекчи този проблем?
Ето извадка от и-мейла от хоста, който показва какво се случва:
CPU_TIME:487 table_rows_read:145631995 SELECTS:1247 ROWS_UPDATED:0 ROWS_FETCHED:0 BUSY_TIME:523 BYTES_SENT:28935207 BYTES_RECEIVED:1357411
Top table row reads:
DB_USER: obqbi_j15 -- TOTAL_CONNECTIONS: 508 -- CPU_TIME: 487 -- TABLE_ROW_READS: 145631995 -- SELECT_COMMANDS: 1247 -- UPATE_COMMANDS: 1079 -- BUSY_TIME: 523 -- BYTES_SENT: 28935207 -- BYTES_RECEIVED: 1357411
Top CPU TIME:
DB_USER: obqbi_j15 -- TOTAL_CONNECTIONS: 508 -- CPU_TIME: 487 -- TABLE_ROW_READS: 145631995 -- SELECT_COMMANDS: 1247 -- UPATE_COMMANDS: 1079 -- BUSY_TIME: -- BYTES_SENT: 28935207 -- BYTES_RECEIVED: 1357411
obqbi 2138 8.3 0.1 43516 20384 ? SN 00:56 0:00 /usr/bin/php /home/obqbi/public_html/index.php
obqbi 2232 25.0 0.0 0 0 ? ZN 00:56 0:00
Днес след неколкократно предупреждение, хоста блокира достъпа до базата, поради многократно и сериозно превишаване на лимита от 25 % процесорно време.
Бихте ли дали пример, как да сложа индекси на базата, така, че малко да се облекчи този проблем?
Ето извадка от и-мейла от хоста, който показва какво се случва:
CPU_TIME:487 table_rows_read:145631995 SELECTS:1247 ROWS_UPDATED:0 ROWS_FETCHED:0 BUSY_TIME:523 BYTES_SENT:28935207 BYTES_RECEIVED:1357411
Top table row reads:
DB_USER: obqbi_j15 -- TOTAL_CONNECTIONS: 508 -- CPU_TIME: 487 -- TABLE_ROW_READS: 145631995 -- SELECT_COMMANDS: 1247 -- UPATE_COMMANDS: 1079 -- BUSY_TIME: 523 -- BYTES_SENT: 28935207 -- BYTES_RECEIVED: 1357411
Top CPU TIME:
DB_USER: obqbi_j15 -- TOTAL_CONNECTIONS: 508 -- CPU_TIME: 487 -- TABLE_ROW_READS: 145631995 -- SELECT_COMMANDS: 1247 -- UPATE_COMMANDS: 1079 -- BUSY_TIME: -- BYTES_SENT: 28935207 -- BYTES_RECEIVED: 1357411
obqbi 2138 8.3 0.1 43516 20384 ? SN 00:56 0:00 /usr/bin/php /home/obqbi/public_html/index.php
obqbi 2232 25.0 0.0 0 0 ? ZN 00:56 0:00
PHP:
<defunct>
obqbi 2234 26.0 0.0 0 0 ? ZN 00:56 0:00 [php] <defunct>
root 2282 0.0 0.0 2548 860 ? SN 00:56 0:00 sh -c ps aux | grep obqbi
root 2284 0.0 0.0 1988 420 ? SN 00:56 0:00 grep obqbi
Tue Jul 26 00:56:51 CDT 2011
Running Processes:
obqbi 2138 8.3 0.1 43516 20384 ? SN 00:56 0:00 /usr/bin/php /home/obqbi/public_html/index.php
obqbi 2232 25.0 0.0 0 0 ? ZN 00:56 0:00 [php] <defunct>
obqbi 2234 26.0 0.0 0 0 ? ZN 00:56 0:00 [php] <defunct>
obqbi 2292 0.0 0.0 22008 2348 ? RN 00:56 0:00 /usr/bin/php /home/obqbi/public_html/index.php
Running Queries:
*************************** 1. row ***************************
USER: obqbi_j15
DB: obqbi_j15
STATE: Copying to tmp table
TIME: 1
COMMAND: Query
INFO: SELECT a.*, p.name as parent, p.id as parentid, c.name as cat, c.id as catid, u.username as user FROM jos_adsmanager_ads as a LEFT JOIN jos_adsmanager_adcat as adcat ON adcat.adid = a.id LEFT JOIN jos_users as u ON a.userid = u.id LEFT JOIN jos_adsmanager_categories as c ON adcat.catid = c.id LEFT JOIN jos_adsmanager_categories as p ON c.parent = p.id WHERE 1 AND (a.ad_headline LIKE '%?????????%' OR a.ad_text LIKE '%?????????%' OR a.ad_headline LIKE '%ekskurziq%' OR a.ad_text LIKE '%ekskurziq%' OR a.ad_headline LIKE '%?????????%' OR a.ad_text LIKE '%?????????%') AND a.published = 1 and c.published = 1 GROUP BY a.id ORDER BY `a`.`t_stars` DESC, a.date_created DESC ,a.id DESC LIMIT 400, 10
*************************** 2. row ***************************
USER: obqbi_j15
DB: obqbi_j15
STATE:
TIME: 3
COMMAND: Sleep
INFO: NULL
Последно редактирано: