Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как сделать join двух больших таблиц?
|
|||
|---|---|---|---|
|
#18+
Первая таблица 20 млн записей, вторая 65тыс записей. В первой нет уникальных записей и она имеет 7 полей. Вторая таблица на одно поле, все записи уникальны. Обычный join наверное не подходит.... Что делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2017, 15:12 |
|
||
|
Как сделать join двух больших таблиц?
|
|||
|---|---|---|---|
|
#18+
wissemона имеет 7 полей. Вторая таблица на одно поле Структуры в студию. wissemОбычный join наверное не подходит Сфига бы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2017, 15:27 |
|
||
|
Как сделать join двух больших таблиц?
|
|||
|---|---|---|---|
|
#18+
Первая таблица: mdlnumber sub_code supplier_name weight_val weight_type price currency purity MFCD00000014 AK176157 ARKPHARMINC 500 G 390 USD 95+% MFCD00000014 AT-22094 ATOMOLE 1000 G 340 USD 98.0% MFCD00000014 U65676 AURUMPHARMA 25 G 129 USD 98% MFCD00000014 U65676 AURUMPHARMA 500 G 613 USD 98% MFCD00000014 U65676 AURUMPHARMA 1 KG 1042.1 USD 98% MFCD00000014 FB60350 CARBOSYNTH 25 G 55 USD MFCD00000014 FB60350 CARBOSYNTH 50 G 94 USD MFCD00000014 FB60350 CARBOSYNTH 100 G 160 USD MFCD00000014 FB60350 CARBOSYNTH 250 G 320 USD MFCD00000014 FB60350 CARBOSYNTH 500 G 544 USD MFCD00000014 CML-22215 CHEMIELIVA 1 G 402 USD 99% MFCD00000014 CML-22215 CHEMIELIVA 2 G 570 USD 99% MFCD00000014 QD-4778 COMBI-BLOCKS 1 G 20 USD 97% Вторая id f_number 1 F9994-5419 2 F9994-5415 3 F9994-5414 4 F9994-5156 5 F9994-3234 6 F8881-8992 7 F1905-8728 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2017, 15:55 |
|
||
|
Как сделать join двух больших таблиц?
|
|||
|---|---|---|---|
|
#18+
Сорри, а как вставить нормально данные, чтоб было понятно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2017, 16:34 |
|
||
|
Как сделать join двух больших таблиц?
|
|||
|---|---|---|---|
|
#18+
wissemкак вставить нормально данные, чтоб было понятно?Выполнить на консоли Код: sql 1. и скопировать сюда результат. Данные - не интересуют. Но для справки - используем тег CSV (кнопка Table), а значения полей записи разделяем запятыми. И используем кнопку Просмотр, чтобы убедиться, что получилось как нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2017, 16:41 |
|
||
|
Как сделать join двух больших таблиц?
|
|||
|---|---|---|---|
|
#18+
AkinaДанные - не интересуют. А что необходимо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2017, 17:00 |
|
||
|
Как сделать join двух больших таблиц?
|
|||
|---|---|---|---|
|
#18+
первая таблица +---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | prices_in_usd | CREATE TABLE `prices_in_usd` ( `mdlnumber` varchar(12) NOT NULL, `sub_code` varchar(32) NOT NULL, `supplier_name` varchar(32) NOT NULL, `weight` varchar(2) NOT NULL, `price` decimal(32,2) NOT NULL, `currency` varchar(3) NOT NULL, `usdprice` decimal(32,2) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 | +---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------- вторая таблица. +-----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | f_numbers | CREATE TABLE `f_numbers` ( `id` int(11) NOT NULL AUTO_INCREMENT, `f_number` varchar(32) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=69867 DEFAULT CHARSET=utf8 | +-----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2017, 17:23 |
|
||
|
Как сделать join двух больших таблиц?
|
|||
|---|---|---|---|
|
#18+
Теперь еще укажите поля, по которым устанавливается соответствие... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2017, 18:24 |
|
||
|
Как сделать join двух больших таблиц?
|
|||
|---|---|---|---|
|
#18+
t1.sub_code = t2.f_number ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2017, 22:10 |
|
||
|
Как сделать join двух больших таблиц?
|
|||
|---|---|---|---|
|
#18+
Ну собственно если создать по этим полям индексы Код: sql 1. 2. то запрос просто-таки полетит... конечно, что это строковое поле - плохо, но не помеха. В общем, не вижу пока ни противнопоказаний к использованию JOIN (хотя его по-любому использовать придётся, даже если делать это неявно). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2017, 22:19 |
|
||
|
Как сделать join двух больших таблиц?
|
|||
|---|---|---|---|
|
#18+
wissem, А какой смысл во второй таблице, если на выход JOIN-а пойдет содержимое, равное полю t1.sub_code, а других значащих полей кроме t2.f_number там нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2017, 00:53 |
|
||
|
Как сделать join двух больших таблиц?
|
|||
|---|---|---|---|
|
#18+
miksoftкакой смысл во второй таблицеВозможно, в эту таблицу вносятся значения для фильтрации - запихнуть 65к значений в текст запроса литерально может оказаться затруднительно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2017, 07:52 |
|
||
|
Как сделать join двух больших таблиц?
|
|||
|---|---|---|---|
|
#18+
Совершенно верно, для фильтрации. Нам из первой таблицы нужны только те записи, где sub_code равен f_number из второй, что сильно сократит первую таблицу. Огромное спасибо за подсказки, через часок попробую и отпишусь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2017, 08:41 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39521507&tid=1830414]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 10ms |
| total: | 152ms |

| 0 / 0 |
