Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   indexar en mysql (https://www.clubdelphi.com/foros/showthread.php?t=6086)

docarrillo 17-12-2003 16:50:07

indexar en mysql
 
hola a todos,

tengo un programa en delphi que conecta a una base de datos, tengo un indice primario en DNI con objeto de que no se repita este campo, y quiero que los registros se ordenen por 1er apellido, 2º apellido y nombre,

en el phpmyadmin he indexado estos campos pero no se ordenan, no sé como hacerlo

gracias por anticipado, un saludo

delphi.com.ar 17-12-2003 17:06:45

Los índices siempre se crean ordenados, pero esto no produce que se ordenen los datos de las tablas. Según ANSI los datos no tienen ningún orden lógico, aunque en la mayoría de los motores los datos conservan el orden en que han sido ingresados, pese a esto nunca he leído que el motor garantize este orden.
Si quieres ver los datos ordenados utilizá ORDER BY

Saludos!

__hector 17-12-2003 19:51:45

En MySQL eso dependera del tipo de base de datos que estes utilizando. En SQL Server existe el concepto de Clustered Index, en el cual los registros son insertados en la BD fisicamente en el mismo orden en el que fueron definidos los indices, lo cual permite una busqueda por ese campo con una rapidez superior a cualquier otro metodo.

Segun estuve viendo en la documentacion de MySQL, eso es propio del tipo de base de datos InnoDB, y cita de la siguiente forma:

Cita:

Every InnoDB table has a special index called the clustered index where the data of the
rows is stored. If you define a PRIMARY KEY on your table, then the index of the primary
key will be the clustered index.

If you do not defne a primary key for your table, InnoDB will internally generate a clustered
index where the rows are ordered by the row id InnoDB assigns to the rows in such a table.
The row id is a 6-byte field which monotonically increases as new rows are inserted. Thus
the rows ordered by the row id will be physically in the insertion order.

docarrillo 18-12-2003 13:32:46

muchas gracias, he resuelto el problema con ORDER BY al final y sale todo correcto. hasta otra, un saludo


La franja horaria es GMT +2. Ahora son las 07:33:43.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi