Вие сте останали с анкети с текущия си набор от технологии. MySQL няма добър начин да ви изпрати известие, че има нещо ново да видите.
(Можете да помислите за добавяне на подсистема за опашка за съобщения, като RabbitMQ например, но това ще изисква голяма промяна в структурата на вашето приложение).
Някои насоки за справяне с гласуването на най-ниската възможна цена.
-
Задайте очакванията на потребителите за забавяне на съобщенията за няколко секунди, а не за милисекунди.
-
Запитвайте толкова често, колкото е необходимо, за да отговорите на очакванията за забавяне.
-
Избягвайте да задавате много данни с всяка заявка. Как можете да направите това?
а. Запазвайте най-новото времеви печат всеки път, когато изпълнявате заявка
б. Не използвайте
SELECT *
. Вместо това дайте имената на колоните, от които всъщност се нуждаете. Това позволява на оптимизатора на MySQL да ви помогне да намалите разходите за вашите заявки.° С. Направете заявките си
SELECT whatever WHERE timestamp > saved_timestamp ORDER BY timestamp
така че получавате само нови артикули от масата си в ред. Ако вашата система не е много заета, тези SELECT често няма да връщат редове. Това е добре.д. Уверете се, че имате многоколонен индекс на времеви печат и другите колони във вашия оператор SELECT. Това се нарича покриващ индекс .
д. Веднага след като отворите връзката си с MySQL, издайте този SQL оператор. Позволява на MySQL да извлича вашите данни с по-малко спорове с други MySQL клиенти, които вмъкват редове в таблицата.
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
Ако правите това с AJAX от браузърите на вашите потребители, искате да включите най-новата времева марка в заявките на AJAX, за да можете да доставяте нови необходимите нови елементи на браузъра на всеки потребител.