Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
arcange
7 лет назад

GolosSQL - Обновление 9 - Новые функции и улучшение производительности

GolosSQL – это публичная MS-SQL база данных со всеми данными блокчейна внутри.

Предыдущие посты:

Что нового?

Многие люди используют GolosSQL для получения информации о подписчиках или о постах, которыми поделились.

Проблема в том, что эти операции не связаны с отдельной транзакцией, они хранятся в блокчейне с использованием custom_json транзакций. В базе данных GolosSQL вы можете найти эти транзакции в таблице TxCustoms.

Хранить детали операций подписки и репоста в строке JSON довольно неудобно, потому как вам необходимо десериализовать контент строки JSON, чтобы получить возможность проанализировать содержимое.

Даже если SQL-сервер обладает функциями JSON для выполнения такой операции, запросы выполняются довольно медленно, так как сервер должен обработать каждый ряд, прежде чем сможет отфильтровать данные. К сожалению, невозможно создать индекс для значений, содержащихся в строке JSON.

Поиск подписчиков или репостов трудно назвать эффективным, особенно когда знаешь, что таблица TxCustoms содержит почти 1 миллион записей.

Но это еще не всё: формат строки JSON для операций «follow» со временем изменился. Это необходимо учитывать, так как парсинг данных и написание эффективного запроса быстро становятся громоздкими.

Короче говоря, вы сталкиваетесь с большим бардаком, когда пытаетесь проанализировать подписчиков и репосты!

К счастью, GolosSQL с его новыми функциями готов вам помочь.

Отображение Подписчиков и Репостов

Были созданы два новых отображения, которые позволят быстрее и проще анализировать подписчиков и репосты.

1. Отображение подписчиков

Это очень простое отображение, которое содержит всего два столбца:

  • follower : имя подписчика
  • following : имя пользователя, на которого он подписан

Теперь узнать, сколько у меня подписчиков, я могу просто отправив подобный запрос:

SELECT COUNT(*) FROM Followers (NOLOCK) WHERE following = 'arcange'

Отображение подписчиков – это не отображение транзакций, т.е. оно не показывает исторические данные и не позволяет узнать, когда пользователь подписался или отписался от какого-либо аккаунта.

2. Отображение репостов

Это отображение тоже очень простое и содержит следующие столбцы:

  • account : поделившийся постом пользователь
  • author : автор исходного поста
  • permlink : постоянная ссылка на исходный пост
  • timestamp : когда был сделан репост

Узнать количество репостов в своем блоге теперь можно просто отправив запрос вида

SELECT COUNT(DISTINCT permlink) FROM Reblogs (NOLOCK) WHERE author = 'arcange'

Грядущее улучшение производительности

Так как GolosSQL пользуется всё больше людей, я планирую произвести улучшение производительности.

Но для начала я возьму заслуженный отпуск.

А пока что не стесняйтесь присылать мне ваши комментарии и предложения. Напишите мне в канале GolosSQL в chat.golos.io или в Telegram (@VIM_Arcange)

Спасибо за чтение!


Все выплаты с этого поста пойдут на поддержание работы GolosSQL.
Спасибо за вашу поддержку.

Спасибо @rusteemitblog за вычитку этого поста перед публикацией.


Поддержите мою работу в качестве делегата. Каждый голос важен. Спасибо !

Для этого нажмите здесь и сделайте следующее.


Если Вам понравился этот пост, не забудьте проголосовать или подписаться на меня

0
580.400 GOLOS
Комментарии (7)
Сортировать по:
Сначала старые