Соединение потеряно при создании первичного ключа. Исправить или понт? - PullRequest
1 голос
/ 01 июня 2019

Этот вопрос о возможных будущих улучшениях задачи, с которой я почти закончил.

Я загрузил базу данных MySQL с подмножеством Метатезавра Универсальной медицинской языковой системы . Я использовал Java приложение под названием MetaMorphoSys, которое генерировало оболочку Bash , один скрипт SQL для определения таблиц и импорта данных из текстовых файлов, а другое - для индексации.

Загрузка и индексация небольшого подмножества UMLS (3,3 М строк в таблице MRSAT) завершается без ошибок. Загрузка большего подмножества (39,4 М строк в MRSAT) также успешна, но на этом шаге индексация не выполняется через 1500-1800 секунд:

ALTER TABLE MRSAT ADD CONSTRAINT X_MRSAT_PK PRIMARY KEY BTREE (ATUI)

Код ошибки: 2013. Потеря соединения с сервером MySQL во время запроса

Мое единственное использование для базы данных MySQL - преобразование реляционных строк в тройки RDF . Это преобразование выполняется с помощью одиночного сценария Python , который, кажется, обращается к таблице MRSAT, но, похоже, не использует столбец ATUI. На данный момент у меня извлечены почти все данные, которые я хочу .

Как определить, что отсутствие первичного ключа отрицательно влияет на производительность запросов генерации RDF?

У меня увеличено время ожидания , но я не внес все изменения в предложенные в других ответах на этот вопрос.

В документации от поставщика предлагается MySQL 5.5 вместо 5.6 из-за проблем с использованием дискового пространства. В любом случае я использую 5.6 (как я это делал в прошлом) на большом экземпляре AWS x1e.2xlarge под управлением Ubuntu 18.

В документации приведены рекомендации по настройке для 5.5, но я не вижу эквивалентных имен настроек в документации 5.6. Я применил эти:

bulk_insert_buffer_size = 100M
join_buffer_size = 100M
myisam_sort_buffer_size = 200M
query_cache_limit = 3M
query_cache_size = 100M
read_buffer_size = 200M
sort_buffer_size = 500M

Для key_buffer = 600M Я сделал key_buffer_size= 600M. Я ничего не делал для table_cache = 300

Предполагается, что первичный ключ установлен в буквенно-цифровом столбце ATUI

mysql> select * from MRSAT limit 9;
+----------+----------+----------+-----------+-------+---------+-------------+-------+--------+-----+------------+----------+------+
| CUI      | LUI      | SUI      | METAUI    | STYPE | CODE    | ATUI        | SATUI | ATN    | SAB | ATV        | SUPPRESS | CVF  |
+----------+----------+----------+-----------+-------+---------+-------------+-------+--------+-----+------------+----------+------+
| C0000005 | L0000005 | S0007492 | A26634265 | AUI   | D012711 | AT212456753 | NULL  | TH     | MSH | UNK (19XX) | N        | NULL |
| C0000005 | L0000005 | S0007492 | A26634265 | AUI   | D012711 | AT212480766 | NULL  | TERMUI | MSH | T037573    | N        | NULL |
| C0000005 | L0000005 | S0007492 | A26634265 | SCUI  | D012711 | AT60774257  | NULL  | RN     | MSH | 0          | N        | NULL |
| C0000005 | L0270109 | S0007491 | A26634266 | AUI   | D012711 | AT212327137 | NULL  | TERMUI | MSH | T037574    | N        | NULL |
| C0000005 | L0270109 | S0007491 | A26634266 | AUI   | D012711 | AT212456754 | NULL  | TH     | MSH | UNK (19XX) | N        | NULL |
| C0000005 | NULL     | NULL     | NULL      | CUI   | NULL    | AT00368929  | NULL  | DA     | MTH | 19900930   | N        | NULL |
| C0000005 | NULL     | NULL     | NULL      | CUI   | NULL    | AT01344283  | NULL  | MR     | MTH | 20020910   | N        | NULL |
| C0000005 | NULL     | NULL     | NULL      | CUI   | NULL    | AT02319637  | NULL  | ST     | MTH | R          | N        | NULL |
| C0000039 | L0000035 | S0007560 | A26674543 | AUI   | D015060 | AT212481191 | NULL  | TH     | MSH | UNK (19XX) | N        | NULL |
+----------+----------+----------+-----------+-------+---------+-------------+-------+--------+-----+------------+----------+------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...