PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (5): « 1 2 [3] 4 5 »

> Найдено сообщений: 69
Lolya Отправлено: 22 Февраля, 2020 - 12:53:24 • Тема: можно улучшить запрос? • Форум: Вопросы новичков

Ответов: 19
Просмотров: 1195
LIME пишет:
Индексы у тебя один ужаснее другого
Тут надо тебе понимать что так просто в один день одним советом не получится стать профи.
На вопрос нельзя ответить в формате форума.
Могу только посоветовать узнать про индексы
Узнай что такое Btree.
Составной индекс.
Покрывающий индекс.
В таком порядке
Почитай потом приходи.

Не, ну я понимаю что блондинка, но мозги еще есть. Я просто примеров КОНКРЕТНЫХ не видела в сети, все те, что или непонятно написаны, или мне не подходят.
удалено..

бред, пределываю...
Lolya Отправлено: 21 Февраля, 2020 - 10:11:12 • Тема: можно улучшить запрос? • Форум: Вопросы новичков

Ответов: 19
Просмотров: 1195
Мелкий пишет:
Замечательно ускорилось, так и оставьте. Что тут ещё сказать. (до редактирования было приведено время выполнения explain)
(Добавление)
Аллилуйя, explain. И даже понятно какой субд, хоть это так и назвали.
Покажите индексы. Впрочем план адекватный, на порядок производительность уже не улучшить будет.

Я ничего не делала, только запрос ввела в пых-админ с добавлением эксплан вначале и всё.
А как индексы увидеть именно для этой связки?

delet
Lolya Отправлено: 21 Февраля, 2020 - 08:50:51 • Тема: можно улучшить запрос? • Форум: Вопросы новичков

Ответов: 19
Просмотров: 1195
Цитата:
id select_type table type possible_keys key key_len ref rows Extra

1 SIMPLE s ref snatch,downloaded,finished,mulct finished 1 const 187 Using index condition; Using where
1 SIMPLE u eq_ref PRIMARY,user PRIMARY 4 amegahd.s.userid 1 Using index condition
1 SIMPLE t eq_ref PRIMARY,id PRIMARY 4 amegahd.s.torrent 1


Если конечно это то, что я поняла.
вот скриншот из пых-админа, там запрос ввела:
Спойлер (Отобразить)
Lolya Отправлено: 19 Февраля, 2020 - 21:32:41 • Тема: можно улучшить запрос? • Форум: Вопросы новичков

Ответов: 19
Просмотров: 1195
LIME пишет:
Lolya это секунды? микросекунды? или сутки?

это в секундах время запроса.
запрос 49 сделан за 0.0070509910583496 секунды времени сервера. И он у меня показывается как "НЕ оптимизированный, требуется оптимизация, ибо слишком большое время исполнения запроса". Огорчение
Lolya Отправлено: 19 Февраля, 2020 - 13:50:16 • Тема: можно улучшить запрос? • Форум: Вопросы новичков

Ответов: 19
Просмотров: 1195
Убрала
CODE (htmlphp):
скопировать код в буфер обмена
  1. AND u.enabled = 'yes' ORDER BY userid

Вот результат:
CODE (htmlphp):
скопировать код в буфер обмена
  1. [49] => 0.0070509910583496 [SELECT s.id AS ids, s.torrent AS tid, t.name AS tname, t.free AS free, s.uploaded AS uploaded, s.downloaded, s.userid AS userid, u.username, u.class, u.uploaded AS upload, UNIX_TIMESTAMP() - UNIX_TIMESTAMP(s.last_action) AS last_action, s.seed_time AS st, s.mulct AS ls, u.enabled, s.finished FROM snatched AS s INNER JOIN users AS u ON u.id = s.userid INNER JOIN torrents AS t ON t.id = s.torrent WHERE s.finished = 'yes' AND s.mulct = 'no' AND s.downloaded > 0]
  2.  
  3. [50] => 0.0018861293792725 [SELECT s.id AS ids, s.torrent AS tid, t.name AS tname, t.free AS free, s.uploaded AS uploaded, s.downloaded, s.userid AS userid, u.username, u.class, u.uploaded AS upload, UNIX_TIMESTAMP() - UNIX_TIMESTAMP(s.last_action) AS last_action, s.seed_time AS st, s.mulct AS ls, u.enabled, s.finished FROM snatched AS s INNER JOIN users AS u ON u.id = s.userid INNER JOIN torrents AS t ON t.id = s.torrent WHERE s.finished = 'no' AND s.seeder = 'no' AND s.mulct = 'no' AND s.downloaded > 0]


Но хотелось бы, если возможно, на более шустрый вариант перевести.
Lolya Отправлено: 17 Февраля, 2020 - 23:42:45 • Тема: можно улучшить запрос? • Форум: Вопросы новичков

Ответов: 19
Просмотров: 1195
Есть запрос, который сильно много берет по времени - тяжелый. Вроде и правильно прописан, но хотелось бы немного модернизивать. Есть куда его улучшать?
время срабатывания:
[56] => 0.011683940887451

CODE (htmlphp):
скопировать код в буфер обмена
  1. SELECT s.id AS ids, s.torrent AS tid, t.name AS tname, t.free AS free, s.uploaded AS uploaded, s.downloaded, s.userid AS userid, u.username, u.class, u.uploaded AS upload, UNIX_TIMESTAMP() - UNIX_TIMESTAMP(s.last_action) AS last_action, s.seed_time AS st, s.mulct AS ls, u.enabled, s.finished FROM snatched AS s INNER JOIN users AS u ON u.id = s.userid
  2. INNER JOIN torrents AS t ON t.id = s.torrent WHERE s.finished = 'yes' AND s.mulct = 'no' AND s.downloaded > 0 AND u.enabled = 'yes' ORDER BY userid


ищет по таблице юзверов(~1000) и взятых файлов (файлов ~1500). Эти две таблицы связаны по ID юзера, то-есть users.id = snatched.userid. Сортировку по userid если убрать, запрос будет еще больше времени обрабатываться, LEFT JOIN еще больше время показывает.
Lolya Отправлено: 06 Февраля, 2020 - 16:04:13 • Тема: защита двух связанных файлов • Форум: Вопросы новичков

Ответов: 9
Просмотров: 568
Строитель пишет:

Lolya, код из последнего вашего поста как-то связан с вашим вопросом? Я лично не смог разглядеть работу с константами... Не понял


Да, я страницу юзера на две разделила, так меньше запросов бьет. В табах информация о юзере пишется, под ИД=***
То-есть, связка страниц по ИД идет, ну и по ссылке что в коде. Так вот, если ссылку открыть так: details_id.php?id=4&info=info2
то покажется информация о юзере с ИД=4, которая должна подгружаться именно на странице details.php. Вот и хотелось этим кодом закрыть просмотр тем, кто хочет посмотреть минуя основную страницу.
Lolya Отправлено: 06 Февраля, 2020 - 15:10:45 • Тема: защита двух связанных файлов • Форум: Вопросы новичков

Ответов: 9
Просмотров: 568
Дам код, чтобы понятно было о чем я речь веду.

принцип создания 2-х страниц на табах. details.php:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?begin_frame(".:: Подробности ::.");?>
  2. <div class="AllContent">
  3. <div class="SmoothTopLine"><div class="SmoothTopLeft"><div class="SmoothTopRight"></div></div></div>
  4. <div class="Content"><div class="ContentLeft"><div class="ContentRight">
  5. <div class="TextInside"><div class="NewIn"><div id="left" class="Inside"><div id='bxm-error'></div>
  6. <div id='bxm-content'>
  7. <script type="text/javascript">var lang_click_here='нажмите сюда';$(function(){$("#tabs").tabs({ajaxOptions:{error: function(xhr, status, index, anchor){$(anchor.hash).html("Не удалось загрузить эту вкладку. Мы постараемся исправить как можно скорее.");}},collapsible:true, cache:true, fx:{opacity:'toggle'}});});</script>
  8. <div id="tabs">
  9. <ul><li><a href="details_id.php?id=<?=$id?>&info=info">Информация</a></li>
  10. <li><a href="details_id.php?id=<?=$id?>&info=info2">Статистика</a></li></ul>
  11. </div>
  12. </div>
  13. </div></div></div>
  14. </div></div></div>
  15. </div><?end_frame();?>


страничка details_id.php:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?$id = intval($_GET["id"]);
  2. if($_GET["info"] == "info"){?><table width="100%" style='border:0;' cellspacing="0" cellpadding="5" width="100%"><?
  3. print("<tr style='border:0;'><td align='center' style='border:0;'>Инфо-текст или код любой</td></tr>");?></table><?}
  4. if($_GET["info"] == "info2"){?><table width="100%" style='border:0;' cellspacing="0" cellpadding="5" width="100%"><?
  5. print("<tr style='border:0;'><td align='center' style='border:0;'>Инфо-текст или код любой для вкладки Статистика</td></tr>");?></table><?}?>
Lolya Отправлено: 06 Февраля, 2020 - 14:18:25 • Тема: защита двух связанных файлов • Форум: Вопросы новичков

Ответов: 9
Просмотров: 568
Есть такая функция, позволяющая связать два файла вместе, если открыть другой, то выбьет ошибку. Это в теории. На практике у меня почему-то все время ошибка выскакивает. Что не так я делаю?
Два файла у меня, один главный - userdetails.php
второй, который подтягивается через главный - user_details.php

Соответственно я ставлю в файле userdetails.php код:

а в файле user_details.php вот этот код:
CODE (htmlphp):
скопировать код в буфер обмена
  1. if (! defined ( 'READFILE' )){exit ( "Error, wrong way to file.<br><a href=\"/\">Go to main</a>." );}


Но при открытии файла userdetails.php у меня теперь в нем пишет - Error, wrong way to file

Что я не так делаю? Спасибо за помощь. Закатив глазки

P.S. связка у меня через табы, по типу аякса.
Lolya Отправлено: 02 Февраля, 2020 - 11:37:39 • Тема: Не срабатывает первый из двух запрос • Форум: Вопросы новичков

Ответов: 4
Просмотров: 297
Всё, вопрос решен. Чуть раньше в коде была ошибка, которая заставляла обходить стороной первый запрос, или сверху переписывать.. не важно, вопрос решен. Тему можно закрыть. Спасибо.
Lolya Отправлено: 02 Февраля, 2020 - 08:25:04 • Тема: Запись чекбоксов в БД • Форум: Вопросы новичков

Ответов: 3
Просмотров: 272
вам нужно один раз или все время эту операцию делать? Потому что, если один раз, то я вчера такую тему создала и мне ответили с верным решением.
Если много-разовое у вас "вписывание", то надо брать данные из самого поста и вписывать их в новую и старую таблицу, если вы хотите чтобы и там и там были эти данные.
Lolya Отправлено: 02 Февраля, 2020 - 08:17:20 • Тема: Не срабатывает первый из двух запрос • Форум: Вопросы новичков

Ответов: 4
Просмотров: 297
LIME

Не выйдет, это анонс.пых файл, там такое не пройдет к сожалению. Огорчение
Мускуль работает и будет дальше работать в виде мискль. Не у всех есть версии скрипта под пых-7, многие еще на пых-5.4 сидят. Вот именно под них и пишется скрипт. Но блин ошибочка за каким-то лешим выходит.

Я не програмёр, я просто учусь. Закатив глазки
Lolya Отправлено: 01 Февраля, 2020 - 23:54:27 • Тема: Не срабатывает первый из двух запрос • Форум: Вопросы новичков

Ответов: 4
Просмотров: 297
Запрос на удаление (второй) - срабатывает! А вот запрос об изменении данных в таблице snatched (первый) - не хочет. Я не пойму - где ошибка??? Сам запрос:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $selfwhere = 'torrent = '.sqlesc($torrentid).' AND peer_id = '.sqlesc($peer_id);
  3. if($event == 'stopped'){
  4. mysql_query('UPDATE LOW_PRIORITY snatched SET seeder = "no", connectable = "no", started = '.sqlesc(get_date_time()).'
  5. WHERE torrent = '.sqlesc($torrentid).' AND userid = '.sqlesc($userid)) or err('Snatched error 1 (update)');
  6. mysql_query('DELETE FROM peers WHERE '.$selfwhere);
  7. if($self['seeder'] == 'yes'){$updateset[] = 'seeders = IF(seeders > 0, seeders - 1, 0)';
  8. }else{
  9. $updateset[] = 'leechers = IF(leechers > 0, leechers - 1, 0)';
  10. $snatch_updateset[] = "seeder = 'no'";
  11. }}}


помогите пожалуйста, подскажите как быть. Не хочет менять в ячейке seeder переключатель yes на no. Огорчение
Lolya Отправлено: 31 Января, 2020 - 16:49:00 • Тема: Обновление данных таблицы из другой • Форум: Вопросы новичков

Ответов: 3
Просмотров: 283
LIME
Большое спасибо! Помогли, будем знать теперь как верно делать. Закатив глазки
Lolya Отправлено: 31 Января, 2020 - 14:20:32 • Тема: Обновление данных таблицы из другой • Форум: Вопросы новичков

Ответов: 3
Просмотров: 283
Делаю запрос обновления данными из одной таблицы в другую. Что не так, почему ошибку бьет?
Заранее спасибо за помощь.
Таблица peers имеет те-же данные что и snatched, а именно:
CODE (htmlphp):
скопировать код в буфер обмена
  1. (`torrent`, `started`, `userid`)


То-есть, torrent=torrent и т.д. Вот запрос для пшп-ми-админ.
CODE (htmlphp):
скопировать код в буфер обмена
  1. UPDATE snatched.started SET peers.started WHERE snatched.torrent = peers.torrent AND snatched.userid = peers.userid

Страниц (5): « 1 2 [3] 4 5 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB