Я новичок в sharding и хотел знать, какие последствия для sharding для разных запросов. Для набора образцов данных с именем «люди»:Каковы последствия скальпинга?
person_id | person_fname | person_lname | person_dob
----------------------------------------------------
1 | John | Smith | 1972-03-04
2 | Sally | Jones | 1968-09-14
3 | Phil | Forrester | 1976-11-25
4 | Gwen | Langley | 1955-04-20
5 | Pedro | Romero | 1962-12-21
6 | Gene | Halford | 1978-01-11
7 | Juan | Peza | 1977-08-07
8 | Pierre | Henry | 1980-04-30
Данные sharded поровну между четырьмя узлами путем создания хэша суррогатной идентичностью «ID». Тем не менее, вы должны выполнять операции чтения и записи на пластинках, которые потенциально охватывают все узлы, такие как:
SELECT person_fname,
person_lname
FROM people
WHERE person_dob > '1970-01-01'
Или говорят, что у вас еще таблицы «заказы», который ссылается на «народ» на «person_id» столбец и хотел выполнить объединение ...
SELECT order_id,
order_amount,
order_date,
person_fname,
person_lname
FROM orders
LEFT JOIN people
WHERE order_amount > 50
ли так, что в действительности все узлы будут запускать запрос параллельно? Я предполагаю, что каждый сервер будет иметь меньше работы для каждого шага, так как вместо одного экземпляра, выполняющего запрос по восьми записям, одновременно четыре экземпляра будут запускать запрос по двум (иш) записям, с дальнейшим преимуществом, которое, если СУБД может выполнять выбор осколков, тогда другие узлы не должны продолжать выполнять какие-либо дополнительные инструкции, верно ли это предположение?
Есть ли какие-либо известные последствия для работы с осколками и сложными соединениями (помимо этого простого примера)?
Спасибо, что имеет смысл –
К сожалению, вышеприведенное относится к категории «легче сказать, чем сделать». –