Этот вопрос о возможных будущих улучшениях задачи, с которой я почти закончил.
Я загрузил базу данных 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 |
+----------+----------+----------+-----------+-------+---------+-------------+-------+--------+-----+------------+----------+------+