Pessoal, para estudo: Alguém sabe porque a conexão do Harbour com o MySQL pela classe TMySQLServer é extremamente rápida quando acessamos servidor na web?
Tenho aplicação em PHP que acessa a mesma base de dados MySQL (mesmo servidor, mesma velocidade de internet,etc) e tenho minha aplicação em Harbour que acessa o mesma base de dados.
O Harbour acessa mil vezes, corrigindo, um milhão de vezes mais rápido que qualquer outra aplicação acessando o mesmo banco de dados... porque?
Estudando o fonte dessa classe não há nada de excepcional a não ser pelas funções mysql_query() que provavelmente pertence a LIB "libmySQL.a", alguém tem os fontes dessa lib "libmySQL.a"?
Caso alguém questione "Depende de como foi programado... etc.." as duas aplicação (Harbour e PHP) estão com o mesmo SELECT (Cltr+C & Cltr+V)
Porque a conexão da classe TMySQLServer é tão rápida?
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Porque a conexão da classe TMySQLServer é tão rápida?
Puro chute:
ADO:
O Harbour conversa com o ADO, que conversa com o ODBC, que conversa com a DLL, que conversa com o MySQL.
Na volta, o MySql que conversa com a DLL, que conversa com o ODBC, que conversa com o ADO, que conversa com o Harbour
Classe TMySQL
O Harbour conversa com a DLL que conversa com o MySql
na volta, o MySql conversa com a DLL que conversa com o Harbour.
Harbour com DLL MySQL, só pode ser de um tipo Harbour para um tipo MySql e vice-versa.
Já na salada ADO, ODBC, DLL...pode ser qualquer tipo, de qualquer base de dados, pra qualquer linguagem de programação.
Provavelmente no PHP deva ser algo parecido com ADO, pra atender qualquer situação.
Como eu disse no início... puro chute.
Ao mesmo tempo.... usando ADO vale pra qualquer base de dados, até DBF.
Qual é melhor? vai de cada um.
ADO:
O Harbour conversa com o ADO, que conversa com o ODBC, que conversa com a DLL, que conversa com o MySQL.
Na volta, o MySql que conversa com a DLL, que conversa com o ODBC, que conversa com o ADO, que conversa com o Harbour
Classe TMySQL
O Harbour conversa com a DLL que conversa com o MySql
na volta, o MySql conversa com a DLL que conversa com o Harbour.
Harbour com DLL MySQL, só pode ser de um tipo Harbour para um tipo MySql e vice-versa.
Já na salada ADO, ODBC, DLL...pode ser qualquer tipo, de qualquer base de dados, pra qualquer linguagem de programação.
Provavelmente no PHP deva ser algo parecido com ADO, pra atender qualquer situação.
Como eu disse no início... puro chute.
Ao mesmo tempo.... usando ADO vale pra qualquer base de dados, até DBF.
Qual é melhor? vai de cada um.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
-
Claudio Soto
- Colaborador

- Mensagens: 566
- Registrado em: 27 Ago 2012 12:31
- Localização: Uruguay
- Contato:
Porque a conexão da classe TMySQLServer é tão rápida?
Debido a que PHP es un lenguaje interpretado, un script en PHP generalmente es más lento que su equivalente CGI desarrollado en un lenguaje compilado.
