Em 23/11/12, Marcelo Silva<[email protected]> escreveu:
> Sim, o order by me garante a ordem exata que preciso (pelo menos
> pressupõe-se, rsrsrs)
>

Repare que em minha resposta eu coloquei:
".. o PostgreSQL *só* garante uma ordem dos registros retornados se
for especificada a cláusula ORDER BY."
ou seja, não existe a garantia de qualquer tipo de ordenação se não
for especificada a cláusula ORDER BY.


> Quando damos um SELECT * FROM TABELA (sem order by) pressupõem-se que os
> registros viram numa ordem natural em que foram inseridos,

Seu pressuposto não está baseado em nenhuma especificação do PostgreSQL.


> um resultado foram disso seria um tanto quanto estranho.
>
> Por exemplo, se dou um INSERT ele coloca o registro imediatamente antes do
> registro posicionado,
> se dou um append, ele vai até o ultimo registro e coloco após este.
>

E o que seria um comando APPEND? Não existe tal comando no PostgreSQL.


> Quanto a saber a ordem em que estão dos registro sem um order by,
> a minha dúvida é simplesmente pra saber porque o postgres não mantem a ordem
>
> "natural"
>

A ordem "natural" creio que seja a ordem em que aparem nos blocos do disco.


> Em uma tabela DBF por exemplo, quando a abrimos ele mostra a ordem natural
> em que foram inseridos os registros
> se damos um update ele simplesmente atualiza a linha em questão e mantem a
> posição natural
> Pelo que vi, em bases como o Firebird, MySQL ele mantém essa ordem natural,
>
> pelo menos visivelmente, internamente não estudei o caso.
> Já o postgres como dito cancela o registro atual e insere um novo,
> interessante isso,
> mas ao mesmo tempo fico me perguntando se isso levaria a um inchaço
> desnecessário (olha quem está falando, rsrsrs) na base.
> E não tornaria o update mais lento ?
>

O autovacuum cuida disso.


> Será que esse procedimento adotado seria pra um caso de um desastre na base
>
> para a recuperação de dados antigos ?
>


Não vejo o por quê (exceto se você for tentar algum tipo de gambiarra
não recomendável).

Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a