Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Внешний ключ к нескольким таблицам
|
|||
|---|---|---|---|
|
#18+
Добрый день, подскажите как поступить, имеется 1. таблица Attachment - содержит записи о файловых вложениях в форме BLOB и другую служебную инфу Код: sql 1. 2. 3. 4. 5. 6. 7. 2. Таблица Обращения, содержащая инфу о поступивших обращениях Код: sql 1. 2. 3. 4. 3. Таблица Входящие документы, содержит инфу о входящих документах Код: sql 1. 2. 3. 4. PK у таблиц Address, Input_docs поле ID первичный ключ, а вот поле RK_ID таблицы Attachment ссылающается на поле ID таблиц Address, Input_docs и с полем TYPE_RK_ID однозначно определяют принадлежность файла-вложения. При попытке выполнить запрос и получить интересующее вложение: Код: sql 1. Ожидание составляет порядка 3 минут. Какие индексы в таблице Attachment следует завести дабы время выполнения запросы увеличилось? Сейчас в таблице Attachment имеем поле ID с индексом как PK. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 12:27 |
|
||
|
Внешний ключ к нескольким таблицам
|
|||
|---|---|---|---|
|
#18+
wsnetКакие индексы в таблице Attachment следует завести дабы время выполнения запросы увеличилось? Что, ещё увеличить? 3 минут мало? А если таки уменьшить, то (RK_ID,TYPE_RK_ID) либо в обратном порядке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 12:44 |
|
||
|
Внешний ключ к нескольким таблицам
|
|||
|---|---|---|---|
|
#18+
wsnet, по моему - очевидно, что нужен составной индекс с полями RK_ID и TYPE_RK_ID. разве нет? можно даже наверно уникальный ключ сделать, если у вас не будет несколько записей по этой паре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 12:44 |
|
||
|
Внешний ключ к нескольким таблицам
|
|||
|---|---|---|---|
|
#18+
Darkripplewsnet, можно даже наверно уникальный ключ сделать, если у вас не будет несколько записей по этой паре. хотя скорее всего будет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 12:45 |
|
||
|
Внешний ключ к нескольким таблицам
|
|||
|---|---|---|---|
|
#18+
Darkripple, Это очевидно, но вот в MySQL нельзя сделать поле FK, ссылающееся на две разных таблицы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 12:46 |
|
||
|
Внешний ключ к нескольким таблицам
|
|||
|---|---|---|---|
|
#18+
AkinawsnetКакие индексы в таблице Attachment следует завести дабы время выполнения запросы увеличилось? Что, ещё увеличить? 3 минут мало? А если таки уменьшить, то (RK_ID,TYPE_RK_ID) либо в обратном порядке. Уменьшить конечно, опечатка, а что вы имейте ввиду ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 12:47 |
|
||
|
Внешний ключ к нескольким таблицам
|
|||
|---|---|---|---|
|
#18+
Вот таким образом в MySQL создать индекс: Код: sql 1. Так верно будет ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 12:53 |
|
||
|
Внешний ключ к нескольким таблицам
|
|||
|---|---|---|---|
|
#18+
wsnetDarkripple, Это очевидно, но вот в MySQL нельзя сделать поле FK, ссылающееся на две разных таблицы!мы же вроде о создании индекса говорим, а не внешнего ключа?... wsnetТак верно будет ?верно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 13:06 |
|
||
|
Внешний ключ к нескольким таблицам
|
|||
|---|---|---|---|
|
#18+
Darkripple, Да, просто интересно, в MySQL вроде бы нельзя в данном случае создать внешний ключ ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 13:11 |
|
||
|
Внешний ключ к нескольким таблицам
|
|||
|---|---|---|---|
|
#18+
Просто интересно в каким случаи будут использоваться индексы если я попытаюсь сделать запрос вида: Код: sql 1. или запрос Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 13:14 |
|
||
|
Внешний ключ к нескольким таблицам
|
|||
|---|---|---|---|
|
#18+
wsnetДа, просто интересно, в MySQL вроде бы нельзя в данном случае создать внешний ключ ? могу ошибаться, но что мешает в таблице Attachment создать два внешних ключа на каждую из таблиц? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 13:15 |
|
||
|
Внешний ключ к нескольким таблицам
|
|||
|---|---|---|---|
|
#18+
DarkripplewsnetДа, просто интересно, в MySQL вроде бы нельзя в данном случае создать внешний ключ ? могу ошибаться, но что мешает в таблице Attachment создать два внешних ключа на каждую из таблиц? извиняюсь (-: голова не тем забита. конечно такой ключ создавать нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 13:17 |
|
||
|
Внешний ключ к нескольким таблицам
|
|||
|---|---|---|---|
|
#18+
wsnetПросто интересно в каким случаи будут использоваться индексы если я попытаюсь сделать запрос вида: explain select ... даст ответ на вопрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 13:18 |
|
||
|
Внешний ключ к нескольким таблицам
|
|||
|---|---|---|---|
|
#18+
wsnetПросто интересно в каким случаи будут использоваться индексы если я попытаюсь сделать запрос вида: ... или запрос Код: sql 1. в этом случае left join не имеет смысла, так как будет проверяться условие attachment.TYPE_RK_ID=1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 13:20 |
|
||
|
Внешний ключ к нескольким таблицам
|
|||
|---|---|---|---|
|
#18+
вообще надо отталкиваться от задачи. если стоит задача вывести список адресов с указанием вложений там где они есть - то первый запрос. правда адреса будут повторяться если вложений будет несколько. и вообще я не могу придумать реальный пример, в котором такой запрос будет необходим. а если нужен просто список вложений, с указанием address, к которому они относятся, то Код: sql 1. обязательно использует этот индекс. правда только для attachment. по address-у будет полный перебор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2017, 13:26 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39476713&tid=1830589]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 402ms |

| 0 / 0 |
