GolosSQL - Обновление 9 - Новые функции и улучшение производительности
GolosSQL – это публичная MS-SQL база данных со всеми данными блокчейна внутри.
Предыдущие посты:
- Вступительный пост
- Обновление 1 - Распознавание языка (english only - только на английском)
- Обновление 2
- Обновление 3
- Обновление 4
- Обновление 5
- Обновление 6
- Обновление 7
- Обновление 8
Что нового?
Многие люди используют 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 за вычитку этого поста перед публикацией.
Поддержите мою работу в качестве делегата. Каждый голос важен. Спасибо !
Если Вам понравился этот пост, не забудьте проголосовать или подписаться на меня