Mysql table indexes

Mysql table indexes

Postby vilian » Wed May 06, 2020 5:30 pm

Hi Guys,
How could I know the indexes of a mysql table has ?
Sds,
Vilian F. Arraes
vilian@vfatec.com.br
Belém-Pa-Brazil
User avatar
vilian
 
Posts: 978
Joined: Wed Nov 09, 2005 2:17 am
Location: Brazil

Re: Mysql table indexes

Postby FranciscoA » Wed May 06, 2020 8:31 pm

Try this way:

Code: Select all  Expand view  RUN
oVer := oServer:Query("SHOW INDEX FROM " + cTable + ";")


Regards.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Mysql table indexes

Postby FranciscoA » Wed May 06, 2020 8:47 pm

Otra manera:

Code: Select all  Expand view  RUN
//Para una tabla
SELECT DISTINCT
    TABLE_NAME,
    INDEX_NAME
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_NAME = 'retalcal';

//Para todas las tablas de una BDD
SELECT DISTINCT
    TABLE_NAME,
    INDEX_NAME
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = 'fapsoftware';


Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Mysql table indexes

Postby vilian » Wed May 06, 2020 11:24 pm

Thank you ;)
Sds,
Vilian F. Arraes
vilian@vfatec.com.br
Belém-Pa-Brazil
User avatar
vilian
 
Posts: 978
Joined: Wed Nov 09, 2005 2:17 am
Location: Brazil

Re: Mysql table indexes

Postby nageswaragunupudi » Thu May 07, 2020 2:47 am

vilian wrote:Hi Guys,
How could I know the indexes of a mysql table has ?


Code: Select all  Expand view  RUN

aIndexes := oCn:ListIndexes( cTable )
 
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10659
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Mysql table indexes

Postby vilian » Thu May 07, 2020 11:13 am

Thank you ;)
Sds,
Vilian F. Arraes
vilian@vfatec.com.br
Belém-Pa-Brazil
User avatar
vilian
 
Posts: 978
Joined: Wed Nov 09, 2005 2:17 am
Location: Brazil

Re: Mysql table indexes

Postby Horizon » Thu May 07, 2020 12:07 pm

nageswaragunupudi wrote:
vilian wrote:Hi Guys,
How could I know the indexes of a mysql table has ?


Code: Select all  Expand view  RUN

aIndexes := oCn:ListIndexes( cTable )
 

Hi Mr. Rao,
Is there any function to create index?
Regards,

Hakan ONEMLI

Harbour & MSVC 2022 & FWH 23.04
Horizon
 
Posts: 1322
Joined: Fri May 23, 2008 1:33 pm

Re: Mysql table indexes

Postby nageswaragunupudi » Thu May 07, 2020 12:24 pm

Is there any function to create index?


No.

Not exactly but this function automatically creates a primary key index:
Code: Select all  Expand view  RUN
METHOD MakePrimaryKey( cTable, cCol )
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10659
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Mysql table indexes

Postby Horizon » Thu May 07, 2020 12:32 pm

nageswaragunupudi wrote:
Is there any function to create index?


No.

Not exactly but this function automatically creates a primary key index:
Code: Select all  Expand view  RUN
METHOD MakePrimaryKey( cTable, cCol )


Hi Mr. Rao,

Do you mean we don't need index other than a primary key? Wouldn't it be better to index the connection variables of detail tables and master table?
Regards,

Hakan ONEMLI

Harbour & MSVC 2022 & FWH 23.04
Horizon
 
Posts: 1322
Joined: Fri May 23, 2008 1:33 pm

Re: Mysql table indexes

Postby nageswaragunupudi » Thu May 07, 2020 1:16 pm

Do you mean we don't need index other than a primary key?


a) We need to create unique indexes for enforcing unique constraint for a column or set of columns. If we want to create unique constraint to a single column, we can either create while creating the table or later create a unique index by:
Code: Select all  Expand view  RUN

oCn:Execute( "CREATE UNIQUE INDEX cust_name_uidx ON cust( name )" )
 


b) In large tables we may need to create indexes on some columns to optimize queries. It is normally better to keep such indexes to minimum or none. Note: Optimizing queries is a subject by itself.

Code: Select all  Expand view  RUN

oCn:Execute( "CREATE INDEX ON employee_sex_idx ON employee( _ )" )
 


Wouldn't it be better to index the connection variables of detail tables and master table?


We do it by creating foreign key relationships. Our library provides special features to deal with parent-child relationships and you can find samples in the samples folder as well in the forum if you search.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10659
Joined: Sun Nov 19, 2006 5:22 am
Location: India


Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 75 guests