Será que o MYSQL é mais forte do que imaginamos?

0 respostas
Victor_Neves

galera,

Hoje eu estava conversando com um colega meu, e outros colegas, sobre banco de dados em ambiente de produçao, dai um colega meu falou que mysql FREE é banco de dados academico, só funciona bem em aulinhas da faculdades por que em produçao ele nao aguentava o tranco.
dai agora aqui em casa eu fiz uma aplicalçao pra colocar o mysql 5.1.37-1ubuntu5.4 na guilhotina, montei o seguinte script

public class FloodMySQL {

	public static void main(String[] args) {
		Connection conexao = null;
		try {

			DB db = new DB();
			conexao = db.getCon();  // traz uma conexao com o mysql

			int i = 0;

			while (!conexao.isClosed()) {
				conexao = db.getCon();

				if (!conexao.isClosed()) {
					System.out.println(++i);
				}
			}

		} catch (SQLException e) {
			System.out.println("Falha na conexao!");
			e.printStackTrace();
		}
	}

dai começou a rodar e tals, o pc esquentando e todos os processamentos subindo e subindo ate que quase uns 10 minutos depois o numero impresso era [color=red]349694 !!!!!!![/color]

só que existe um detalhe, analisando o LOG do eclipse, quando esse numero estava la pra 500 deu o seguinte erro:

com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: "Too many connections"
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:921)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1070)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2748)
at com.mysql.jdbc.Connection.(Connection.java:1553)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at java.sql.DriverManager.getConnection(DriverManager.java:620)
at java.sql.DriverManager.getConnection(DriverManager.java:200)
at laboratorio.util.DB.getCon(DB.java:15)
at laboratorio.main.CLiente.main(CLiente.java:20)

e depois voltava a contar, e aparecia o erro, e voltava a contar e aparecia o erro.
as vezes ele lançava esse erro umas 4 vezes seguidas e depois voltava a contar , e tornava a dar o erro....

alguem pode me esclarecer melhor? como ele pode alertar ter muitas conexoes mas alcançar um numero tao alto?!
o mysql aguenta mesmo 349694 conexoes? acho que nao enh...
o que voces acham?

Criado 10 de novembro de 2010
Respostas 0
Participantes 1