а оно вам нужно, этот "phpMyAdmin configuration storage"?
если нужно, то настройте:
/* User used to manipulate with storage */ $cfg['Servers'][$i]['controlhost'] = ''; $cfg['Servers'][$i]['controlport'] = ''; $cfg['Servers'][$i]['controluser'] = 'pma'; $cfg['Servers'][$i]['controlpass'] = 'pmapass';
если нет, то удалите эти строки:
/* Storage database and tables */ $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin'; $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark'; $cfg['Servers'][$i]['relation'] = 'pma__relation'; $cfg['Servers'][$i]['table_info'] = 'pma__table_info'; $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords'; $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages'; $cfg['Servers'][$i]['column_info'] = 'pma__column_info'; $cfg['Servers'][$i]['history'] = 'pma__history'; $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs'; $cfg['Servers'][$i]['tracking'] = 'pma__tracking'; $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig'; $cfg['Servers'][$i]['recent'] = 'pma__recent'; $cfg['Servers'][$i]['favorite'] = 'pma__favorite'; $cfg['Servers'][$i]['users'] = 'pma__users'; $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups'; $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding'; $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches'; $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
обычно я выбираю второй вариант, в сад все лишнее.
CONCAT_WS - просто склеивает стринги, никаких условий в нем нет, все возвращаемые поля остаются без изменений.
хотя трудно не щупая базы давать советы...---------- Добавлено 26.09.2017 в 00:48 ----------
э-э... хранить гео в риал-е - это плохая идея.
что по производительности, что по функциональности - попробуйте по координатам в типе реал выбрать дупы или сгруппировать по ним.
не... в сад флоаты и реалы, я с ними достаточно намучился при учете денег до 8 знака после запятой.
я предпочитаю гео хранить как varchar - нигде никакая дробная циферка не убежит и не станет девяткой в периоде.
по работе с гео есть еще несколько тонкостей/лайфхаков, например в случае ТС мы видим выборку(округлив, это допустимо):
WHERE `lon` > '45.16' and `lon` < '45.18' AND lat > '54.18' AND lat < '54.20'
т.е. по сути нас интересуют только первые 5 символов, что дает нам возможность построить частичный составной индекс по lon, lat, который будет максимально эффективен. что-то типа:
ALTER TABLE `geo_firm` ADD KEY `lon5lat5` (`lon`(5), `lat`(5))
ps: погонял на своей небольшой базе в 1.8М записей, можно и одним индексом по lon в пять символов обойтись
ALTER TABLE `geo_firm` ADD KEY `lon5` (`lon`(5))
результат примерно одинаковый, хотя может из-за того, что база у меня мелкая.
SELECT * FROM `geo_firm` WHERE `lon` > '45.16' and `lon` < '45.18' AND lat > '54.18' AND lat < '54.20'Showing rows 0 - 49 (706 total, Query took 0.0007 seconds.)
проще регулярками выдрать, да и результат будет более предсказуемый.
$txt = file_get_contents('http://api.onebound.cn/taobao/demo/demo.php?api_name=get_taobao_item&num_iid=538522618444');if (preg_match('%<textarea.*?>(.*?)</textarea%is', $txt, $mm) ){// print_r($mm[1]); $aa = json_decode($mm[1], true); print_r($aa);}
условие у вас идет по t4, значит и начинайте джойнить с t4, т.е. как-то так:
... FROM tables4_address AS t4 LEFT JOIN tables1_items AS t1 ON t4.item_id = t1.id LEFT JOIN tables2_categories AS t2 ON t1.category_id = t2.id LEFT JOIN tables3_sections AS t3 ON t1.section_id = t3.id WHERE (t4.geo_long BETWEEN 45.161317 AND 45.181317) AND (t4.geo_lat BETWEEN 54.181330999996 AND 54.201330999996)
после этого можете еще поэкспериментировать с заменой каждого BETWEEN на два условия "больше" и "меньше",
по переставлять их местами, например min.long min.lat max.long max.lat. возможно при каких то комбинациях ускорится выборка.
затем создайте составной индекс по long, lat и снова потестируйте все комбинации.
ps: а какую базу вы ковыряете: osm, 2gis или еще какую?
не на своих тоже, первые ласточки уже пошли.
ждем волну, а затем новый вид меток в поисковиках: "ваш сайт майнит и может причинить.."
потом разработчики браузеров постепенно зарежут это.
у вас две таблицы :)
UPDATE x55_cl_items SET count_do = (SELECT COUNT(id) FROM x55_do_working WHERE x55_do_working.cl_id = x55_cl_items.id)
логично, что долго. для каждой строки из таблицы "item" выполняется запрос по табличке "working".
если у вас в "item" 1000 строк, то реально будет выполнено 1000+1 = 1001 sql запрос. упс, выше уже написали тоже самое, только сейчас прочитал :)
переписал ваш запрос, реально это будет два запроса, отработает моментально. нужен индекс по полю x55_do_working.id
update `x55_cl_items` t1, (SELECT id, count(*) cnt FROM `x55_do_working` group by id) t2 set t1.count_do = t2.cnt where t1.id=t2.id
да, совершенно верно.
в if закрывающей круглой скобки не хватает
/usr/bin/php -q /var/www/user/data/www/url.com/a.php
желательно еще перед этим сделать cd /var/www/user/data/www/url.com;
ну и посмотреть сам скрипт, чтобы он не использовал переменные из окружения веб сервера: $_SERVER и т.д.---------- Добавлено 19.09.2017 в 20:08 ----------
wget -O - -q http://url.com/a.php >/dev/null 2>&1
если это вдска или сервер и править что-то лениво, то пропишите в /etc/hosts строку
---
127.0.0.1 url.com
или вместо 127... - адрес вашего сервера (смотря как у вас все настроено)
и продолжайте дальше дергать wget-ом
будет конфликт, используйте внутри локейшена "if"
location ~* ^.+\.(jpg|jpeg|gif|ico|png|swf|css|js)$ { if ($uri ~ ^.+\.(jpg|png|css|js)$) { expires 7d; } ... }