|
|
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. На сайте подсчет отправленных смс, недавно их перевалило за 20 000 и теперь лефт джойн не работает. Как ограничить или исправить??? Код: sql 1. Выводит все смс клиентов принадлежащих к одному офису если без COUNT, а со счетчиком оно сначала показывает количество смс общее. Подскажите пожалуйста как исправить sql запрос что бы он работал с этой большой таблицей... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2014, 19:12:57 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
psfdek, Тебе для начала нужно привести сам текст запроса, тогда о чём-то можно будет разговаривать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2014, 10:49:57 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
MasterZivнужно привести сам текст запросадополню, а то тут частенько не понимают разницы: текст именно запроса (того, что исполняется на сервере), а не текст шаблона запроса, который тут приведён. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2014, 11:32:32 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
SELECT count(*) FROM `{$tprefix}sms` JOIN `{$tprefix}clients` ON `{$tprefix}sms`.`client_login` = `{$tprefix}clients`.`client_login` WHERE `{$tprefix}clients`.`office_key` = '{$office_key}'; Вот же sql запрос, переменные в нем только префик и значение ключа офиса.... Они могут быть любыми ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 11:10:09 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
tanglirтекст именно запроса ( того, что исполняется на сервере ), а не текст шаблона запроса, который тут приведёндобавлю - и его explain ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 11:20:23 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
скорее всего нет ключей, нет индексов, нужен explain ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 11:22:41 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
SELECT * FROM `OTo_sms` JOIN `OTo_clients` ON `OTo_sms`.`client_login` = `OTo_clients`.`client_login` WHERE `OEo_clients`.`office_key` = '4e6fdeec6bf2c5724476ad6daec1036a'; Так работает.. Не работает только если COUNT(*) подсчет ввести.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 12:18:01 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
Короче когда делаю подсчет то не работает, а когда просто вывожу на страницу то работает. Мне нужно делать подсчет для пагинатора. До 14000 записей все норм работало, перевалило за 20000 перестало работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 12:19:57 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
то есть так Код: sql 1. 2. 3. 4. работает, а так Код: sql 1. 2. 3. 4. нет? чудеса. ну а если попробовать вот так Код: sql 1. 2. 3. 4. 5. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 12:26:23 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
Вот видите работает без count (Лимит автоматом phpmyadmin добавил что бы все не отображать) Так не работает Так тоже не пашет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 13:50:34 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
psfdekТак тоже не пашетПотому что буковка "t" там была не просто так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 13:53:25 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
Хотя ведь указаны таблицы перед столбцами.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 14:01:22 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
psfdek, А какой у вас сейчас MAX_JOIN_SIZE ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 14:11:47 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
Я не знаю, на хостинге же. Я думал можно как то оптимизировать этот запрос. А то за 2 месяца 20000 через пол года еще менять придется его... :) Техподдержка мне не поможет. Придется делать в php наверно, раз mysql не могёт... (Хотя while не справится наверно от такого массива ассоциативного) Модератор: Пожалуйста, воздерживайтесь от употребления обсценной лексики. Пост поправлен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 14:17:22 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
psfdek, Код: sql 1. Что выдает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 14:24:09 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
Как уже просил tanglir, покажите план запроса, который работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 14:33:07 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
miksoft, Чуть выше где три спойлера показан пример где без count работает, а с count нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 14:37:22 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
psfdek, explain <запрос который работает> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 14:39:10 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
ну не ключей ни индексов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 14:45:28 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
Подскажите как правильно, будьте добры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 14:48:45 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
А у Вас что MyISAM, InnoDB? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 14:56:27 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
За такой план мне бы тоже запрос не понравился на месте сервера. Создайте индексы по полю `OEo_clients`.`office_key` и по полю `OEo_sms`.`client_login`. И кстати, почему у вас где-то `OEo_sms`, а где-то `OTo_sms` ? Если это разные таблицы, то индексы нужны для всех. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2014, 17:10:56 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
tanglirто есть так Код: sql 1. 2. 3. 4. работает, а так Код: sql 1. 2. 3. 4. нет? чудеса. ну а если попробовать вот так Так никаких чудес нет, в первом запросе результат выдаётся сразу, как только есть первые несколько сот строк. И автор послания думает, что запрос работает быстро, поскольку до конца набора данных не долистывает . А во втором случае запрос выдаст данные только когда посчитает все записи, удовлетворяющие всем условиям. Это и в первом случае долго, только автор топика, видимо, это никогда не делает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2014, 13:25:21 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
авторНа сайте подсчет отправленных смс, недавно их перевалило за 20 000 и теперь лефт джойн не работает . Как ограничить или исправить??? SELECT count(*) FROM `{$tprefix}sms` JOIN `{$tprefix}clients` ON `{$tprefix}sms`.`client_login` = `{$tprefix}clients`.`client_login` WHERE `{$tprefix}clients`.`office_key` = '{$office_key}' {$filter_sms_q}; Выводит все смс клиентов принадлежащих к одному офису если без COUNT, а со счетчиком оно сначала показывает количество смс общее. Подскажите пожалуйста как исправить sql запрос что бы он работал с этой большой таблицей... tanglirто есть так Код: sql 1. 2. 3. 4. работает, а так Код: sql 1. 2. 3. 4. нет? чудеса. ну а если попробовать вот так? Что-то концы с концами у подсудимого несходятся... Я ещё раз призываю подсудимого Опубликовать проблемный запрос. опубликовать DDL таблиц Объяснить, в чём же заключается собственно проблема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2014, 13:31:41 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
miksoft, это не разные просто я не сменил префикс. Не хотел вначале его палить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2014, 17:42:24 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
MasterZivОбъяснить, в чём же заключается собственно проблема.Так еще вчера в MAX_JOIN_SIZE уперлись, см. 16783381 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2014, 22:29:59 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
psfdekmiksoft, это не разные просто я не сменил префикс. Не хотел вначале его палить.Нам, честно говоря, все равно какой там префикс. Главное, чтобы вы сами не запутались. Ну как, создание индексов помогло? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2014, 22:31:13 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
Как создавать их? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2014, 21:17:22 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
psfdekКак создавать их? create index ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2014, 00:26:08 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
А индексы создать 1 раз нужно или каждый раз в запросе нужно делать это? И для каких столбцов мне нужно индексы сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2014, 10:00:08 |
|
||
|
Left join проблема...
|
|||
|---|---|---|---|
|
#18+
psfdekА индексы создать 1 раз нужно или каждый раз в запросе нужно делать это?Индексы создаются один раз и относятся к таблице, а не к запросу. А потом уже используются оптимизатором для выполнения тех запросов, где посчитает это полезным. psfdekИ для каких столбцов мне нужно индексы сделать?miksoftСоздайте индексы по полю `OEo_clients`.`office_key` и по полю `OEo_sms`.`client_login`. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2014, 13:29:47 |
|
||
|
|

start [/forum/topic.php?all=1&fid=47&tid=1833977]: |
0ms |
get settings: |
11ms |
get forum list: |
26ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
121ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
77ms |
get tp. blocked users: |
2ms |
| others: | 247ms |
| total: | 501ms |

| 0 / 0 |
