The post has been translated automatically. Original language: Russian
Imagine a thousand-page book with no content. To find the right chapter, you'll have to scroll through it all. With the content, it takes seconds. The index works the same way in the data.
When there are a hundred records in the table, the search is fast in any way. When there are ten million records, the search method becomes crucial.
Without an index, the program looks through the records one by one. With the index, she immediately knows where the right thing is.
The index is based on the fields that are most often searched for: order number, phone number, date.
There is a price for speed. The index takes up space, and it needs to be updated with each new entry. Therefore, indexes are not made for all fields, but only for those used in the search.
The order of the fields is also important. The city and date index helps you search by city, but it doesn't help you search by date alone.
The rule of thumb is simple: look at the most frequent data queries and build indexes for them. Usually there are few such requests, and they give almost all the winnings.
Do you know which five requests to your data are performed most often?
Часто нужно, чтобы внешняя система узнала о событии сразу: платёж прошёл, заказ собран, документ подписан.Первый способ это регулярный опрос. Одна система каждую минуту спрашивает другую, нет ли новостей. Способ простой, работает всегда, но в большинстве запросов новостей нет, и получается много лишней работы.Второй способ обратный. Получатель заранее сообщает адрес, куда присылать сообщения, и вторая система сама отправляет уведомление, когда событие произошло. Лишних обращений нет, новость приходит сразу.У второго способа есть свои особенности, о которых стоит знать заранее.Сообщение может прийти дважды. Отправитель не получил подтверждение и отправил повторно. Поэтому получатель должен спокойно относиться к повтору и не выполнять работу второй раз.Порядок сообщений не гарантирован. Уведомление о завершении может прийти раньше уведомления о начале. Поэтому в каждом сообщении важно передавать время события.Получатель может быть занят. Значит, отправителю нужно повторить попытку позже, а не считать сообщение доставленным.И полезная привычка: принимать сообщение быстро, а обработку делать отдельно. Получатель сразу подтверждает приём, кладёт сообщение в очередь и работает с ним в своём темпе.Практический выбор простой. Если событий мало и важна скорость, лучше подходят уведомления. Если получатель может быть недоступен часами, регулярный опрос надёжнее.А вы получаете события от партнёров уведомлениями или опрашиваете их по расписанию?