зеркало из
				https://github.com/iharh/notes.git
				synced 2025-10-31 13:46:08 +02:00 
			
		
		
		
	m
Этот коммит содержится в:
		
							родитель
							
								
									5381b792f7
								
							
						
					
					
						Коммит
						d1bbe8417f
					
				| @ -53,7 +53,7 @@ Geopolitics | |||||||
|     https://boosty.to/den_club/posts/f198877e-c804-4ca3-8948-808f6aec3a46 |     https://boosty.to/den_club/posts/f198877e-c804-4ca3-8948-808f6aec3a46 | ||||||
| 
 | 
 | ||||||
| 2024 | 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 |     https://boosty.to/den_club/posts/d2dcfcfa-01ea-4216-a3ba-a08edab16a49 | ||||||
|     ! AUKUS is very rich for usefull iskopaemye |     ! AUKUS is very rich for usefull iskopaemye | ||||||
| DayCenter - SecretSocietiesAndVatican - Lection 11 - Intelligence of Vatican 36:00 of 1:44:58 | 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 | https://nday.club/faces/d-meleshin | ||||||
| 
 | 
 | ||||||
| 2024 | 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- |     https://nday.club/video/ivan-efremov-protiv-seksualnoy-revolyucii- | ||||||
| 2023 | 2023 | ||||||
| ConceptualSenses - Suchkov - Hour of Bull Prophetity of 54:56 | ConceptualSenses - Suchkov - Hour of Bull Prophetity of 54:56 | ||||||
|  | |||||||
| @ -1,5 +1,5 @@ | |||||||
| 2024 | 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 |     https://www.youtube.com/watch?v=lI_fj1vF8qY | ||||||
| 2023 | 2023 | ||||||
| DayTV - Shishkin - Krupnov - Dying ZH of 47:28 | 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/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 | samples | ||||||
| https://github.com/creativenull/dotfiles/blob/main/config/nvim/init.lua | https://github.com/creativenull/dotfiles/blob/main/config/nvim/init.lua | ||||||
| https://github.com/creativenull/dotfiles/blob/main/config/nvim/init.lua#L70 | 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 |     # 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 |     [ -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 | https://github.com/NvChad/nvcommunity | ||||||
|     NvChad community repo for sharing plugin configurations  |     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.archlinux.org/title/PulseAudio | ||||||
| https://wiki.gentoo.org/wiki/PulseAudio | https://wiki.gentoo.org/wiki/PulseAudio | ||||||
| https://habr.com/ru/articles/106806/ | 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. С новым представлением 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 | 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 | PointOfGather - Trotskaya - Masalovich - 04.29 - Carlson and Durov of 37:26 | ||||||
|     https://www.youtube.com/watch?v=ZuJtnitJ8g0 |     https://www.youtube.com/watch?v=ZuJtnitJ8g0 | ||||||
| PointOfGather - Kaskov - Masalovich - InfoWar by Digital Methods of 31:57 | PointOfGather - Kaskov - Masalovich - InfoWar by Digital Methods of 31:57 | ||||||
|  | |||||||
		Загрузка…
	
	
			
			x
			
			
		
	
		Ссылка в новой задаче
	
	Block a user
	 Ihar Hancharenka
						Ihar Hancharenka