I've just run a Bitcoin node but I don't understand how blockchain.info or any other blockchain explorer works. I mean, sometimes I have problems like "socket.timeout". Shouldn't it be faster to query info from my own node than from a blockexplorer?
API providers, such as Blockchain.com, are not querying a node to answer your queries to them usually. For the handful of providers that actually do offer a proxy service to a bitcoin node, they usually run several of them and spread out incoming queries so that no single node is answering a huge number.
They extract the information they need and store it in a separate database, which is optimized for quickly serving the information for all transactions and addresses.
bitcoind is optimized for running the Bitcoin Protocol, which is largely just communicating with other nodes, maintaining the utxo set, and validating blocks. While it does let you retrieve historical transaction information, it is not the primary goal. It also does not offer universal address indexing, and only indexes transactions for the known wallet addresses.
It may be worthwhile for your usecase to extract historical information from bitcoind once and use that as a source for your future queries.