You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on May 26, 2022. It is now read-only.
Copy file name to clipboardExpand all lines: performance/hard_disk.tex
+9-4Lines changed: 9 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
\section{Диски и файловые системы}
2
2
Очевидно, что от качественной дисковой подсистемы в сервере БД зависит немалая часть производительности. Вопросы выбора и
3
-
тонкой настройки <<железа>>, впрочем, не являются темой данной статьи, ограничимся уровнем файловой системы.
3
+
тонкой настройки <<железа>>, впрочем, не являются темой данной главы, ограничимся уровнем файловой системы.
4
4
5
5
Единого мнения насчёт наиболее подходящей для PostgreSQL файловой системы нет, поэтому рекомендуется использовать ту, которая лучше
6
6
всего поддерживается вашей операционной системой. При этом учтите, что современные журналирующие файловые системы не намного
@@ -12,8 +12,8 @@ \section{Диски и файловые системы}
12
12
\subsection{Перенос журнала транзакций на отдельный диск}
13
13
При доступе к диску изрядное время занимает не только собственно чтение данных, но и перемещение магнитной головки.
14
14
15
-
Если в вашем сервере есть несколько физических дисков\footnote{несколько логических разделов на одном диске здесь,
16
-
очевидно, не помогут: головка всё равно будет одна}, то вы можете разнести файлы базы данных и журнал транзакций по разным
15
+
Если в вашем сервере есть несколько физических дисков (несколько логических разделов на одном диске здесь,
16
+
очевидно, не помогут: головка всё равно будет одна), то вы можете разнести файлы базы данных и журнал транзакций по разным
17
17
дискам. Данные в сегменты журнала пишутся последовательно, более того, записи в журнале транзакций сразу сбрасываются на диск,
18
18
поэтому в случае нахождения его на отдельном диске магнитная головка не будет лишний раз двигаться, что позволит ускорить запись.
19
19
@@ -26,4 +26,9 @@ \subsection{Перенос журнала транзакций на отдель
26
26
\end{itemize}
27
27
28
28
Примерно таким же образом можно перенести и часть файлов, содержащих таблицы и индексы, на другой диск, но здесь
29
-
потребуется больше кропотливой ручной работы, а при внесении изменений в схему базы процедуру, возможно, придётся повторить.
29
+
потребуется больше кропотливой ручной работы, а при внесении изменений в схему базы процедуру, возможно, придётся повторить.
30
+
31
+
\subsection{CLUSTER}
32
+
CLUSTER table [ USING index ]~--- команда для упорядочивание записей таблицы на диске согласно индексу, что иногда за счет уменьшения доступа к диску ускоряет выполнение запроса. Возможно создать только один физический порядок в таблице, поэтому и таблица может иметь только один кластерный индекс. При таком условии нужно тщательно выбирать, какой индекс будет использоваться для кластерного индекса.
33
+
34
+
Кластеризация по индексу позволяет сократить время поиска по диску: во время поиска по индексу выборка данных может быть значительно быстрее, так как последовательность данных в таком же порядке, как и индекс. Из минусов можно отметить то, что команда CLUSTER требует <<ACCESS EXCLUSIVE>> блокировку, что предотвращает любые другие операции с данных (чтения и записи) пока кластеризация не завершит выполнение. Также кластеризация индекса в PostgreSQL не утверждает четкий порядок следования, поэтому требуется повторно выполнять CLUSTER для поддержания таблицы в порядке.
0 commit comments