Таблицы блокируются в базе данных MySQL - PullRequest
0 голосов
/ 02 июля 2018

Я запрашиваю MySQl DB, используя mysql.connector в Python. запрос выглядит следующим образом: -

SELECT item.*
FROM d_table INNER JOIN
     i_table AS i
     ON (d_table.item_tag = i.item_tag) 
WHERE id = 20 AND
      timestamp >= '2000-06-30 00:00:00' AND
      timestamp <= '2001-07-30 00:00:00'  
GROUP BY i.id 

Здесь основная проблема заключается в том, что таблица блокируется, и, поскольку к ней запрашиваются каждые 0,2 секунды, существует ли способ разблокировать таблицу или создать временную таблицу и вернуть результаты вышеуказанного запроса

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Это комментарий, но пространство ограничено в разделе комментариев.

Здесь основная проблема заключается в том, что таблица блокируется, и так как к ней запрашиваются каждые 0,2 секунды

Вы задаете неправильные вопросы неправильно.

Есть ли влияние на производительность в результате сериализации запросов? Если это так, то блокировка таблицы - это только одна часть проблемы, другая - время, затрачиваемое на выполнение запроса. Вы не предоставили никакой информации в поддержку какого-либо анализа вопроса о производительности. Хотя существуют способы избежать блокировки, они могут привести к другим проблемам с производительностью.

Вы не предоставили никаких сведений о структурах таблиц, ни о распределении данных, ни о плане объяснения запроса.

Что касается блокировки таблиц, невозможно сделать какое-либо обоснованное предложение, не зная, какой тип блокировки происходит. Что такое ядро ​​базы данных для этих таблиц? Что такое модель изоляции транзакции? Какова нагрузка?

0 голосов
/ 02 июля 2018

Я думаю, что самый простой способ - это посмотреть на стол. Таким образом, вы можете выбрать только вид.

CREATE VIEW test_view AS
SELECT item.*
FROM d_table INNER JOIN
     i_table AS i
     ON (d_table.item_tag = i.item_tag) 
WHERE id = 20 AND
      timestamp >= '2000-06-30 00:00:00' AND
      timestamp <= '2001-07-30 00:00:00'  
GROUP BY i.id;  

Тогда просто:

select * from test_view;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...