|
|
|
Оптимизация выборки данных
|
|||
|---|---|---|---|
|
#18+
Есть две переменные id (допустим это 1 и 2), они выполняют роль идентификаторов двух разных пользователей и записываются в базу вместе с другой информацией. Первый id записывается в колонку id1, второй в id2. Иногда данные идут вперемешку и записываются как id1:2, id2:1. Далее задача: найти все записи с id 1 - выполняю select * from table where id1=1 or id2=1. Созрела идея сделать иначе - записывать оба id в одну колонку через разделительный знак ("1-2", "2-1") и потом разбирать его на уровне приложения. Таким образом я могу избавиться от "or" и селектать только одну колонку. Но скажите, пожалуйста, будет ли от этого толк? :) Таблица тяжелая, данных много. Важна скорость выполнения поиска. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2016, 18:26 |
|
||
|
Оптимизация выборки данных
|
|||
|---|---|---|---|
|
#18+
UNION [ALL] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2016, 18:35 |
|
||
|
Оптимизация выборки данных
|
|||
|---|---|---|---|
|
#18+
Мне кажется второй отдельный селект еще хуже, чем OR. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2016, 18:37 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39191677&tid=1832066]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
147ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 424ms |

| 0 / 0 |
