Нужен опытный программист, который бы смог разобраться в коде сайта и оптимизировать его. Сейчас сайт работает очень медленно, админ который настраивал сервер , говорит что самое узкое место на сайте, это запросы к базе данных. Вот пример который он приводит :[TABLE][TR][TD]***************************************[/TD][TD]19.03.2015 14:45 [IMG]file:///C:/Program%20Files%20(x86)/ICQ7.6/imApp/theme/IMAGES/History/im-icon.png[/IMG]
[/TD][/TR][TR][TD]
теперь по узким местам.
узкое место у вас - база данных ,
точнее запросы в ней.
по производительности сечас там настроено все как
положено, но необходимо оптимизировать запросы. например тяжелючий запрос:
#
Time: 150319 13:53:09
# User@Host:**************] @ localhost []
#
Thread_id: 441 Schema: ************ QC_hit: No
# Query_time: 114.540405
Lock_time: 0.000217 Rows_sent: 7 Rows_examined: 75930262
SET
timestamp=1426762389;
SEL ECT DISTINCT
BS.*,
B.LIST_PAGE_URL,
B.SECTION_PAGE_URL,
B.IBLOCK_TYPE_ID,
B.CODE as
IBLOCK_CODE,
B.XML_ID as
IBLOCK_EXTERNAL_ID,
BS.XML_ID as
EXTERNAL_ID,
DATE_FORMAT(BS.TIMESTAMP_X,
'%d.%m.%Y %H:%i:%s') as TIMESTAMP_X,
DATE_FORMAT(BS.DATE_CREATE, '%d.%m.%Y %H:%i:%s') as
DATE_CREATE
,COUNT(DISTINCT BE.ID) as
ELEMENT_CNT
FR OM b_iblock_section
BS
INNER
J
[/TD][/TR][/TABLE][TABLE][TR][TD]*******************************************[/TD][TD]19.03.2015 14:45 [IMG]file:///C:/Program%20Files%20(x86)/ICQ7.6/imApp/theme/IMAGES/History/im-icon.png[/IMG]
[/TD][/TR][TR][TD]
OIN b_iblock B ON BS.IBLOCK_ID =
B.ID
INNER JOIN b_iblock_section
BSTEMP ON BSTEMP.IBLOCK_ID =
BS.IBLOCK_ID
LEFT JOIN
b_iblock_section_element BSE ON
BSE.IBLOCK_SECTION_ID=BSTEMP.ID
LEFT
JOIN b_iblock_element BE ON
(BSE.IBLOCK_ELEMENT_ID=BE.ID
AND ((BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL
)
AND BE.IBLOCK_ID =
BS.IBLOCK_ID
)
AND
BE.ACTIVE='Y'
AND (BE.ACTIVE_TO >=
now() OR BE.ACTIVE_TO IS NULL)
AND
(BE.ACTIVE_FROM <= now() OR BE.ACTIVE_FROM IS
NULL))
WHERE
1=1
AND BSTEMP.IBLOCK_ID =
BS.IBLOCK_ID
AND
BSTEMP.LEFT_MARGIN >=
BS.LEFT_MARGIN
AND
BSTEMP.RIGHT_MARGIN <= BS.RIGHT_MARGIN
AND ((((BS.AC
[/TD][/TR][/TABLE]************************************[TABLE][TR][TD]
[/TD][TD]19.03.2015 14:45 [IMG]file:///C:/Program%20Files%20(x86)/ICQ7.6/imApp/theme/IMAGES/History/im-icon.png[/IMG]
[/TD][/TR][TR][TD]
TIVE='Y'))))
AND
((((BS.GLOBAL_ACTIVE='Y'))))
AND
((((BS.IBLOCK_ID = '27'))))
AND
(BS.LEFT_MARGIN >=572)
AND
(BS.RIGHT_MARGIN <=586)
AND
((((BS.DEPTH_LEVEL <= '3'))))
AND
((((B.ID = '27'))))
AND
((
B.ID IN (
SEL ECT IBLOCK_ID
FR OM b_iblock_group
IBG
WH ERE IBG.GROUP_ID IN
(2)
AND IBG.PERMISSION >=
'R'
AND (IBG.PERMISSION='X' OR
B.ACTIVE='Y')
)
OR
(B.RIGHTS_MODE = 'E' AND EXISTS (
SELECT
SR.SECTION_ID
FR OM b_iblock_section_right
SR
INNER JOIN b_iblock_right IBR ON IBR.ID =
SR.RIGHT_ID
INNER JOIN b_user_access UA ON
UA.ACCESS_CODE = IBR.GROUP_CODE AND UA.USER_ID =
0
WH
[/TD][/TR][/TABLE]**********************************[TABLE][TR][TD]
[/TD][TD]19.03.2015 14:45 [IMG]file:///C:/Program%20Files%20(x86)/ICQ7.6/imApp/theme/IMAGES/History/im-icon.png[/IMG]
[/TD][/TR][TR][TD]
ERE SR.SECTION_ID = BS.ID
AND
IBR.OP_SREAD = 'Y'
))
))
GROUP BY BS.ID,
B.ID
ORDER BY BS.LEFT_MARGIN
asc;
[root@********************** mysql]#
он выполнялся 114(!!!) секунд. при
этом
Query_time: 114.540405 Lock_time: 0.000217 Rows_sent: 7
Rows_examined: 75930262
всего отправил в базу данных 7 записей, а обработал
75 млн строк.
[/TD][/TR][/TABLE]
[/TD][/TR][TR][TD]
теперь по узким местам.
узкое место у вас - база данных ,
точнее запросы в ней.
по производительности сечас там настроено все как
положено, но необходимо оптимизировать запросы. например тяжелючий запрос:
#
Time: 150319 13:53:09
# User@Host:**************] @ localhost []
#
Thread_id: 441 Schema: ************ QC_hit: No
# Query_time: 114.540405
Lock_time: 0.000217 Rows_sent: 7 Rows_examined: 75930262
SET
timestamp=1426762389;
SEL ECT DISTINCT
BS.*,
B.LIST_PAGE_URL,
B.SECTION_PAGE_URL,
B.IBLOCK_TYPE_ID,
B.CODE as
IBLOCK_CODE,
B.XML_ID as
IBLOCK_EXTERNAL_ID,
BS.XML_ID as
EXTERNAL_ID,
DATE_FORMAT(BS.TIMESTAMP_X,
'%d.%m.%Y %H:%i:%s') as TIMESTAMP_X,
DATE_FORMAT(BS.DATE_CREATE, '%d.%m.%Y %H:%i:%s') as
DATE_CREATE
,COUNT(DISTINCT BE.ID) as
ELEMENT_CNT
FR OM b_iblock_section
BS
INNER
J
[/TD][/TR][/TABLE][TABLE][TR][TD]*******************************************[/TD][TD]19.03.2015 14:45 [IMG]file:///C:/Program%20Files%20(x86)/ICQ7.6/imApp/theme/IMAGES/History/im-icon.png[/IMG]
[/TD][/TR][TR][TD]
OIN b_iblock B ON BS.IBLOCK_ID =
B.ID
INNER JOIN b_iblock_section
BSTEMP ON BSTEMP.IBLOCK_ID =
BS.IBLOCK_ID
LEFT JOIN
b_iblock_section_element BSE ON
BSE.IBLOCK_SECTION_ID=BSTEMP.ID
LEFT
JOIN b_iblock_element BE ON
(BSE.IBLOCK_ELEMENT_ID=BE.ID
AND ((BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL
)
AND BE.IBLOCK_ID =
BS.IBLOCK_ID
)
AND
BE.ACTIVE='Y'
AND (BE.ACTIVE_TO >=
now() OR BE.ACTIVE_TO IS NULL)
AND
(BE.ACTIVE_FROM <= now() OR BE.ACTIVE_FROM IS
NULL))
WHERE
1=1
AND BSTEMP.IBLOCK_ID =
BS.IBLOCK_ID
AND
BSTEMP.LEFT_MARGIN >=
BS.LEFT_MARGIN
AND
BSTEMP.RIGHT_MARGIN <= BS.RIGHT_MARGIN
AND ((((BS.AC
[/TD][/TR][/TABLE]************************************[TABLE][TR][TD]
[/TD][TD]19.03.2015 14:45 [IMG]file:///C:/Program%20Files%20(x86)/ICQ7.6/imApp/theme/IMAGES/History/im-icon.png[/IMG]
[/TD][/TR][TR][TD]
TIVE='Y'))))
AND
((((BS.GLOBAL_ACTIVE='Y'))))
AND
((((BS.IBLOCK_ID = '27'))))
AND
(BS.LEFT_MARGIN >=572)
AND
(BS.RIGHT_MARGIN <=586)
AND
((((BS.DEPTH_LEVEL <= '3'))))
AND
((((B.ID = '27'))))
AND
((
B.ID IN (
SEL ECT IBLOCK_ID
FR OM b_iblock_group
IBG
WH ERE IBG.GROUP_ID IN
(2)
AND IBG.PERMISSION >=
'R'
AND (IBG.PERMISSION='X' OR
B.ACTIVE='Y')
)
OR
(B.RIGHTS_MODE = 'E' AND EXISTS (
SELECT
SR.SECTION_ID
FR OM b_iblock_section_right
SR
INNER JOIN b_iblock_right IBR ON IBR.ID =
SR.RIGHT_ID
INNER JOIN b_user_access UA ON
UA.ACCESS_CODE = IBR.GROUP_CODE AND UA.USER_ID =
0
WH
[/TD][/TR][/TABLE]**********************************[TABLE][TR][TD]
[/TD][TD]19.03.2015 14:45 [IMG]file:///C:/Program%20Files%20(x86)/ICQ7.6/imApp/theme/IMAGES/History/im-icon.png[/IMG]
[/TD][/TR][TR][TD]
ERE SR.SECTION_ID = BS.ID
AND
IBR.OP_SREAD = 'Y'
))
))
GROUP BY BS.ID,
B.ID
ORDER BY BS.LEFT_MARGIN
asc;
[root@********************** mysql]#
он выполнялся 114(!!!) секунд. при
этом
Query_time: 114.540405 Lock_time: 0.000217 Rows_sent: 7
Rows_examined: 75930262
всего отправил в базу данных 7 записей, а обработал
75 млн строк.
[/TD][/TR][/TABLE]