зеркало из
https://github.com/iharh/notes.git
synced 2025-10-29 12:46:06 +02:00
m
Этот коммит содержится в:
родитель
5381b792f7
Коммит
d1bbe8417f
@ -53,7 +53,7 @@ Geopolitics
|
||||
https://boosty.to/den_club/posts/f198877e-c804-4ca3-8948-808f6aec3a46
|
||||
|
||||
2024
|
||||
DayClub - Zakaznoe Fuflo 15:00 of 1:55:01
|
||||
DayClub - Zakaznoe Fuflo 45:00 of 1:55:01
|
||||
https://boosty.to/den_club/posts/d2dcfcfa-01ea-4216-a3ba-a08edab16a49
|
||||
! AUKUS is very rich for usefull iskopaemye
|
||||
DayCenter - SecretSocietiesAndVatican - Lection 11 - Intelligence of Vatican 36:00 of 1:44:58
|
||||
|
||||
@ -4,7 +4,7 @@ SciencePRO - Smirnov - About Efremov of 4 parts
|
||||
https://nday.club/faces/d-meleshin
|
||||
|
||||
2024
|
||||
NDay - Melyoshin - Listov - Ivan Efremov Against Sex Revolution 5:00 of 1:01:21
|
||||
NDay - Melyoshin - Listov - Ivan Efremov Against Sex Revolution 25:00 of 1:01:21
|
||||
https://nday.club/video/ivan-efremov-protiv-seksualnoy-revolyucii-
|
||||
2023
|
||||
ConceptualSenses - Suchkov - Hour of Bull Prophetity of 54:56
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
2024
|
||||
Fillipovskiy13 - Why TW is so Important for ZH of 1:27:15
|
||||
Fillipovskiy13 - Why TW is so Important for ZH 39:00 of 1:27:15
|
||||
https://www.youtube.com/watch?v=lI_fj1vF8qY
|
||||
2023
|
||||
DayTV - Shishkin - Krupnov - Dying ZH of 47:28
|
||||
|
||||
11
os/editors/neovim/dist/nvchad/cfg/cfg.txt
поставляемый
11
os/editors/neovim/dist/nvchad/cfg/cfg.txt
поставляемый
@ -23,17 +23,6 @@ lua/
|
||||
|
||||
https://github.com/search?q=language%3Alua+config.lua&type=repositories
|
||||
|
||||
https://github.com/NvChad/NvChad/issues/1868
|
||||
https://github.com/NvChad/NvChad/issues/1868#issuecomment-1502940186
|
||||
custom/configs/overrides.lua
|
||||
https://github.com/NvChad/NvChad/issues/2020
|
||||
lua/custom/abc.lua
|
||||
|
||||
Current line and column in status line
|
||||
https://github.com/NvChad/NvChad/issues/1562
|
||||
https://github.com/NvChad/NvChad/issues/863
|
||||
https://github.com/NvChad/ui/issues/121
|
||||
|
||||
samples
|
||||
https://github.com/creativenull/dotfiles/blob/main/config/nvim/init.lua
|
||||
https://github.com/creativenull/dotfiles/blob/main/config/nvim/init.lua#L70
|
||||
|
||||
1
os/editors/neovim/dist/nvchad/cfg/keymap.txt
поставляемый
Обычный файл
1
os/editors/neovim/dist/nvchad/cfg/keymap.txt
поставляемый
Обычный файл
@ -0,0 +1 @@
|
||||
https://github.com/NvChad/NvChad/issues/2020
|
||||
7
os/editors/neovim/dist/nvchad/cfg/lsp.txt
поставляемый
Обычный файл
7
os/editors/neovim/dist/nvchad/cfg/lsp.txt
поставляемый
Обычный файл
@ -0,0 +1,7 @@
|
||||
https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md
|
||||
|
||||
https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#lua_ls
|
||||
https://luals.github.io/#neovim-install
|
||||
https://github.com/LuaLS/lua-language-server/releases
|
||||
https://github.com/LuaLS/lua-language-server/releases/download/3.8.3/lua-language-server-3.8.3-linux-x64.tar.gz
|
||||
https://github.com/williamboman/mason.nvim/issues/995
|
||||
4
os/editors/neovim/dist/nvchad/cfg/samples.txt
поставляемый
Обычный файл
4
os/editors/neovim/dist/nvchad/cfg/samples.txt
поставляемый
Обычный файл
@ -0,0 +1,4 @@
|
||||
https://docs.rockylinux.org/ru/books/nvchad/template_chadrc/
|
||||
|
||||
https://github.com/nightn/custom-NvChad/tree/main
|
||||
https://github.com/nightn/custom-NvChad/blob/main/chadrc.lua
|
||||
57
os/editors/neovim/dist/nvchad/cfg/statusline.txt
поставляемый
Обычный файл
57
os/editors/neovim/dist/nvchad/cfg/statusline.txt
поставляемый
Обычный файл
@ -0,0 +1,57 @@
|
||||
Current line and column in status line
|
||||
https://github.com/NvChad/NvChad/issues/1562
|
||||
https://github.com/NvChad/NvChad/issues/863
|
||||
https://github.com/NvChad/ui/issues/121
|
||||
|
||||
~/.local/share/nvim/lazy/
|
||||
base46/lua/base46/integrations/statusline/default.lua
|
||||
colors only
|
||||
ui/lua/nvchad/stl/default.lua
|
||||
...
|
||||
M.cursor = "%#St_pos_sep#" .. sep_l .. "%#St_pos_icon# %#St_pos_text# %p %% "
|
||||
|
||||
|
||||
M.ui = {
|
||||
theme = "onedark",
|
||||
-- theme = "gruvchad",
|
||||
|
||||
statusline = {
|
||||
overriden_modules = function()
|
||||
-- local st_modules = require "nvchad_ui.statusline.default"
|
||||
local fn = vim.fn
|
||||
-- local sep_l = "->"
|
||||
local sep_l = "-->"
|
||||
|
||||
return {
|
||||
cursor_position = function()
|
||||
-- local line = vim.fn.line "."
|
||||
-- local col = vim.fn.virtcol "."
|
||||
|
||||
-- -- lets store current logs
|
||||
-- local cp = st_modules.cursor_position()
|
||||
|
||||
-- return cp .. string.format("%3d:%-2d", line, col)
|
||||
|
||||
local line = fn.line "."
|
||||
local col = fn.virtcol "."
|
||||
|
||||
local chad = string.format(" %d:%d", line, col) .. " │ "
|
||||
|
||||
-- default cursor_position module
|
||||
local left_sep = "%#St_pos_sep#" .. sep_l .. "%#St_pos_icon#" .. " "
|
||||
|
||||
local current_line = fn.line "."
|
||||
local total_line = fn.line "$"
|
||||
local text = math.modf((current_line / total_line) * 100) .. tostring "%%"
|
||||
text = string.format("%4s", text)
|
||||
|
||||
text = (current_line == 1 and "Top") or text
|
||||
text = (current_line == total_line and "Bot") or text
|
||||
|
||||
local result = left_sep .. "%#St_pos_text#" .. chad .. text .. " "
|
||||
return result
|
||||
end,
|
||||
}
|
||||
end,
|
||||
},
|
||||
}
|
||||
1
os/editors/neovim/dist/nvchad/cfg/themes.txt
поставляемый
Обычный файл
1
os/editors/neovim/dist/nvchad/cfg/themes.txt
поставляемый
Обычный файл
@ -0,0 +1 @@
|
||||
https://nvchad.com/themes/
|
||||
1
os/editors/neovim/dist/nvchad/cfg/ui.txt
поставляемый
Обычный файл
1
os/editors/neovim/dist/nvchad/cfg/ui.txt
поставляемый
Обычный файл
@ -0,0 +1 @@
|
||||
https://nvchad.com/docs/config/nvchad_ui/
|
||||
1
os/editors/neovim/dist/nvchad/docs/whatsnew.txt
поставляемый
1
os/editors/neovim/dist/nvchad/docs/whatsnew.txt
поставляемый
@ -13,3 +13,4 @@ https://nvchad.com/news/v2.5_release/
|
||||
# Some users have plugins.lua instead of plugins dir/ so move it in the plugins dir
|
||||
[ -e lua/plugins.lua ] && mv lua/plugins.lua lua/plugins/myplugins.lua
|
||||
...
|
||||
https://nvchad.com/news/v2.0_release/
|
||||
|
||||
8
os/editors/neovim/dist/nvchad/nvchad.txt
поставляемый
8
os/editors/neovim/dist/nvchad/nvchad.txt
поставляемый
@ -21,3 +21,11 @@ https://docs.rockylinux.org/books/nvchad/nvchad_ui/plugins_manager/
|
||||
|
||||
https://github.com/NvChad/nvcommunity
|
||||
NvChad community repo for sharing plugin configurations
|
||||
|
||||
:Nvdash
|
||||
dashboard
|
||||
https://nvchad.com/docs/features/#dashboard
|
||||
themes
|
||||
mappings
|
||||
...
|
||||
:NvCheatsheet
|
||||
|
||||
50
os/editors/neovim/plugins/manager/mason.txt
Обычный файл
50
os/editors/neovim/plugins/manager/mason.txt
Обычный файл
@ -0,0 +1,50 @@
|
||||
https://github.com/williamboman/mason.nvim
|
||||
https://github.com/williamboman/mason.nvim/tree/main/doc
|
||||
https://github.com/williamboman/mason.nvim/blob/main/doc/mason.txt
|
||||
https://github.com/williamboman/mason.nvim/blob/main/doc/reference.md
|
||||
|
||||
:h
|
||||
lsp
|
||||
mason-help-guide, mason.nvim
|
||||
mason-commands
|
||||
mason-debugging
|
||||
mason-settings
|
||||
mason-default-settings
|
||||
mason-how-to-use-packages
|
||||
LSP: `lspconfig` & `mason-lspconfig.nvim`
|
||||
:LspLog
|
||||
~/.local/state/nvim/lsp.log
|
||||
:LspInfo
|
||||
|
||||
|
||||
:Mason
|
||||
open mason ui window
|
||||
:MasonInstall
|
||||
lua-language-server
|
||||
lua-language-server@v3.0.0
|
||||
https://github.com/williamboman/mason.nvim/issues/995
|
||||
:MasonInstall --target=linux_x64_gnu lua-language-server
|
||||
:MasonUpdate
|
||||
:MasonLog
|
||||
~/.local/state/nvim/mason.log
|
||||
|
||||
:checkhealth mason
|
||||
|
||||
~/.local/share/nvim/mason
|
||||
bin
|
||||
lua-language-server@ -> ~/.local/share/nvim/mason/packages/lua-language-server/lua-language-server
|
||||
packages/
|
||||
lua-language-server/
|
||||
libexec/log/
|
||||
service.log
|
||||
...
|
||||
share/mason-schemas/lsp/
|
||||
lua-language-server.json@ -> ~/.local/share/nvim/mason/packages/lua-language-server/mason-schemas/lsp.json
|
||||
|
||||
mason.nvim [GitHub] ~
|
||||
- OK GitHub API rate limit. Used: 1. Remaining: 59. Limit: 60. Reset: Fri 03 May 2024 09:29:17 AM +03.
|
||||
Install and authenticate via gh-cli to increase rate limit.
|
||||
|
||||
to-look
|
||||
https://www.reddit.com/r/neovim/comments/15qxb2l/is_there_a_way_to_make_setting_up_lsps_only_very/
|
||||
:LspConfig
|
||||
@ -1,13 +1,3 @@
|
||||
dnf
|
||||
Skipping packages with conflicts:
|
||||
(add '--best --allowerasing' to command line to force their upgrade):
|
||||
qt6-qtbase x86_64 6.7.0-3.fc40 updates 4.1 M
|
||||
qt6-qtbase-gui
|
||||
...
|
||||
Skipped:
|
||||
qt6-qtbase-6.7.0-3.fc40.x86_64
|
||||
qt6-qtbase-gui-6.7.0-3.fc40.x86_64
|
||||
|
||||
https://wiki.archlinux.org/title/PulseAudio
|
||||
https://wiki.gentoo.org/wiki/PulseAudio
|
||||
https://habr.com/ru/articles/106806/
|
||||
|
||||
116
pages/pg.txt
116
pages/pg.txt
@ -173,3 +173,119 @@ SELECT * FROM pg_stat_io WHERE io_context IN ('bulkread', 'bulkwrite') AND (read
|
||||
В общем, вариантов запросов к представлению много, все зависит от вашей задачи. Расследование проблем с операциями ввода/вывода всегда было важной задачей для администратора PostgreSQL. С новым представлением pg_stat_io теперь очень легко и быстро можно получить как общую картину по операциям чтения и записи, так отдельно по определенному процессу или контексту.
|
||||
|
||||
*****************************************
|
||||
|
||||
В PostgreSQL, операция Seq Scan (https://t.me/pg_guru/544) (последовательное сканирование) и Index Scan (https://t.me/pg_guru/146) (сканирование индекса) - это два основных метода доступа к данным, которые используются для выполнения запросов.
|
||||
|
||||
✅ Seq Scan (Последовательное сканирование):
|
||||
|
||||
В этом методе PostgreSQL сканирует таблицу последовательно, от начала до конца, чтобы найти строки, удовлетворяющие условиям запроса.
|
||||
Seq Scan подходит для таблиц с небольшим количеством строк или когда PostgreSQL считает, что использование индексов для доступа к данным неэффективно из-за большого количества строк или других факторов.
|
||||
|
||||
📌 Этот метод может быть медленным для больших таблиц, поскольку требует полного сканирования всей таблицы.
|
||||
|
||||
✅ Index Scan (Сканирование индекса):
|
||||
|
||||
В этом методе PostgreSQL использует индекс для поиска строк, соответствующих условиям запроса.
|
||||
Индекс Scan может быть значительно более быстрым, чем Seq Scan, особенно для запросов, которые выбирают небольшое количество строк из большой таблицы.
|
||||
|
||||
📌 Однако использование индексов не всегда эффективно, особенно если выбираемые данные включают большую часть таблицы или если индекс имеет низкую кардинальность (т.е. много строк с одинаковыми значениями в индексе).
|
||||
|
||||
Иногда PostgreSQL может выбрать Sequential Scan, даже если индекс существует, если он считает, что Sequential Scan будет более эффективным.
|
||||
|
||||
✅ Вывод команды EXPLAIN в PostgreSQL может показать, какой из этих методов использовался для выполнения запроса, а также другие детали, такие как, какие индексы использовались, и оценки стоимости операции.
|
||||
|
||||
|
||||
Помимо Seq Scan и Index Scan, PostgreSQL поддерживает и другие методы доступа к данным, которые могут использоваться для выполнения запросов. Некоторые из них включают:
|
||||
|
||||
✅ Bitmap Index Scan (Сканирование битовой карты индекса):
|
||||
|
||||
Этот метод используется, когда несколько индексов объединяются для выполнения запроса с использованием операции битовой карты.
|
||||
|
||||
PostgreSQL создает битовую карту для каждого индекса, указывая, какие строки удовлетворяют условиям запроса, а затем объединяет их, чтобы определить, какие строки соответствуют всем условиям запроса.
|
||||
|
||||
✅ Bitmap Heap Scan (Сканирование битовой карты кучи):
|
||||
|
||||
Этот метод используется после Bitmap Index Scan для получения фактических строк из таблицы.
|
||||
|
||||
PostgreSQL использует битовую карту, чтобы определить, какие строки получить из таблицы.
|
||||
|
||||
✅ TID Scan (Сканирование по идентификатору строки):
|
||||
|
||||
Этот метод используется, когда PostgreSQL уже знает идентификаторы (TID) строк, которые нужно получить.
|
||||
Обычно это происходит в результате других операций сканирования или операций слияния.
|
||||
|
||||
✅ Index Only Scan (Только сканирование индекса):
|
||||
|
||||
Этот метод используется, когда все запрошенные столбцы могут быть получены непосредственно из индекса, без обращения к фактическим строкам таблицы.
|
||||
|
||||
📌 Это более эффективно, чем обычное сканирование индекса, так как PostgreSQL может избежать обращения к данным таблицы.
|
||||
|
||||
✅ Nested Loop (Вложенный цикл):
|
||||
|
||||
Этот метод используется для выполнения соединений между таблицами.
|
||||
|
||||
PostgreSQL сканирует одну таблицу и использует результаты сканирования для поиска соответствующих строк в другой таблице.
|
||||
|
||||
✅ Hash Join (Хэш-соединение):
|
||||
|
||||
Этот метод используется для выполнения соединений между таблицами, основываясь на хэшировании значений соединяемых столбцов.
|
||||
|
||||
PostgreSQL хэширует значения из одной таблицы и использует их для быстрого поиска соответствующих значений в другой таблице.
|
||||
|
||||
✅ Эти методы используются в различных сценариях выполнения запросов и могут быть комбинированы PostgreSQL в различные способы для оптимизации выполнения запросов. Вывод команды EXPLAIN позволяет увидеть, какие методы использовались PostgreSQL для выполнения конкретного запроса.
|
||||
|
||||
*****************************************
|
||||
|
||||
Рассмотрим более подробно метод доступа к данным Index Only Scan (только сканирование индекса).
|
||||
|
||||
✅ Другие методы доступа к данным в PostgreSQL которые используются для выполнения запросов мы рассмотрели ранее (https://t.me/pg_guru/697).
|
||||
|
||||
✅ Index Only Scan (только сканирование индекса) - это оптимизация запроса в PostgreSQL, которая позволяет выполнять запросы, используя только индексы, без необходимости обращаться к фактическим данным таблицы. Это особенно полезно в случаях, когда все необходимые столбцы для выполнения запроса уже содержатся в индексе.
|
||||
|
||||
Вот как это работает:
|
||||
|
||||
📌 Предпосылки:
|
||||
Для того чтобы использовать Index Only Scan, PostgreSQL должна иметь доступ к индексу, который покрывает все столбцы, используемые в запросе, включая столбцы, которые возвращаются в результирующем наборе данных.
|
||||
|
||||
📌 План выполнения запроса:
|
||||
Планировщик запросов PostgreSQL решает, следует ли использовать Index Only Scan или нет, основываясь на статистике и стоимости доступа к данным. Если PostgreSQL решает, что Index Only Scan более эффективен, он будет использован.
|
||||
|
||||
📌 Использование индекса:
|
||||
Когда выполняется Index Only Scan, PostgreSQL анализирует предикаты запроса и определяет, какие строки данных нужно извлечь. Затем он использует индекс, чтобы найти соответствующие строки данных, не обращаясь к самим данным в таблице.
|
||||
|
||||
📌 Получение данных из индекса:
|
||||
После того как PostgreSQL находит соответствующие записи в индексе, он извлекает только необходимые столбцы из индекса, а не обращается к данным в самой таблице. Это делает выполнение запроса более эффективным, так как нет необходимости загружать дополнительные данные из таблицы.
|
||||
|
||||
📌 Ограничения:
|
||||
Важно отметить, что Index Only Scan не всегда возможен. Например, если запрос включает столбцы, которые не были включены в индекс, или если таблица содержит большое количество обновлений, которые могут привести к несоответствиям индекса и данных, то PostgreSQL может решить, что Index Only Scan не является подходящим.
|
||||
|
||||
✅ В целом, Index Only Scan является мощным инструментом оптимизации запросов в PostgreSQL, который может значительно улучшить производительность при правильном использовании.
|
||||
|
||||
Для примера предположим, у нас есть таблица users с колонками id, name и age, и у нас есть индекс по колонке age.
|
||||
|
||||
CREATE TABLE users (
|
||||
id SERIAL PRIMARY KEY,
|
||||
name VARCHAR(100),
|
||||
age INTEGER
|
||||
);
|
||||
|
||||
CREATE INDEX idx_age ON users(age);
|
||||
|
||||
Теперь допустим, мы хотим выбрать имена пользователей и их возраст, которые старше 30 лет. Мы можем написать запрос следующим образом:
|
||||
|
||||
|
||||
SELECT name, age
|
||||
FROM users
|
||||
WHERE age > 30;
|
||||
|
||||
Если PostgreSQL решает использовать Index Only Scan, то он может извлечь имена и возраст пользователей, используя только индекс idx_age, не обращаясь к данным в таблице users.
|
||||
|
||||
✅ Важно помнить, что использование Index Only Scan зависит от множества факторов, включая статистику данных, размер таблицы, а также текущие нагрузки на базу данных.
|
||||
|
||||
✅ PostgreSQL автоматически принимает решение о том, следует ли использовать метод Index Only Scan для выполнения запроса или нет, на основе статистики данных и стоимости доступа к ним. Это решение принимается оптимизатором запросов PostgreSQL в процессе составления плана выполнения запроса.
|
||||
|
||||
✅ Оптимизатор запросов PostgreSQL анализирует доступные индексы, статистику данных и другие факторы, чтобы решить, какие методы выполнения запроса будут наиболее эффективными. Если оптимизатор определяет, что использование Index Only Scan будет более эффективным, чем другие методы, то он будет выбран.
|
||||
|
||||
✅ В целом, хотя разработчик может влиять на выбор метода выполнения запросов в PostgreSQL, чаще всего лучшие результаты достигаются путем оптимизации структуры данных и индексов, а также написанием эффективных запросов, а не явным указанием определенных методов выполнения запросов.
|
||||
|
||||
*****************************************
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
2024
|
||||
PointOfGather - Pechenkin - Masalovich - IT 2:00 of 20:36
|
||||
https://www.youtube.com/watch?v=eIX02QXBNq0
|
||||
PointOfGather - Trotskaya - Masalovich - 04.29 - Carlson and Durov of 37:26
|
||||
https://www.youtube.com/watch?v=ZuJtnitJ8g0
|
||||
PointOfGather - Kaskov - Masalovich - InfoWar by Digital Methods of 31:57
|
||||
|
||||
Загрузка…
x
Ссылка в новой задаче
Block a user