at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1026)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
原來(lái)我使用了綠色版的mysql,以前能用是因?yàn)閙y.ini文件已經(jīng)存在了。而我重新ghost一下,就沒(méi)有這個(gè)文件了。
默認(rèn)情況下配置文件可以放在以下目錄中(假定我的mysql安裝在d:\server\mysql下):
C:\my.ini C:\my.cnf C:\WINDOWS\my.ini C:\WINDOWS\my.cnf D:\server\mysql\my.ini D:\server\mysql\my.cnf
你可以用mysqld-nt.exe --install,把mysql添加到系統(tǒng)服務(wù)中,然后就可以了。
另外我發(fā)現(xiàn)原來(lái)可以指定表的engine
MySQL兩種表存儲(chǔ)結(jié)構(gòu)MyISAM和InnoDB
MySQL支持的兩種主要表存儲(chǔ)
格式MyISAM,InnoDB,上個(gè)月做個(gè)項(xiàng)目時(shí),先使用了InnoDB,結(jié)果速度特別慢,1秒鐘只能插入10幾條。后來(lái)?yè)Q成MyISAM格式,一秒鐘
插入上萬(wàn)條。當(dāng)時(shí)決定這兩個(gè)表的性能也差別太大了吧。后來(lái)自己推測(cè),不應(yīng)該差別這么慢,估計(jì)是寫(xiě)的插入語(yǔ)句有問(wèn)題,決定做個(gè)測(cè)試:
測(cè)試環(huán)境:Redhat Linux9,4CPU,內(nèi)存2G,MySQL版本為4.1.6-gamma-standard
測(cè)試程序:Python+Python-MySQL模塊。
測(cè)試方案:
1、MyISAM格式分別測(cè)試,事務(wù)和不用事務(wù)兩種情況:
2、InnoDB格式分別測(cè)試AutoCommit=1(不用begin transaction和用begin transaction模式),
AutoCommit=0 (不用begin transaction和用begin transaction模式)四種情況。
測(cè)試方法為插入10000條記錄。為了測(cè)試不互相影響,單獨(dú)建立了專(zhuān)用的測(cè)試表,建表語(yǔ)句如下:
1、MyISAM不用事務(wù)表:
CREATE TABLE `MyISAM_NT` (
`TableId` int(11) NOT NULL default '0',
`TableString` varchar(21) NOT NULL default ''
) ENGINE=MyISAM;
2、MyISAM用事務(wù)表:
CREATE TABLE `MyISAM_TS` (
`TableId` int(11) NOT NULL default '0',
`TableString` varchar(21) NOT NULL default ''
) ENGINE=MyISAM;
3、InnoDB關(guān)閉AutoCommit,不用事務(wù):
CREATE TABLE `INNODB_NA_NB` (
`TableId` int(11) NOT NULL default '0',
`TableString` varchar(21) NOT NULL default ''
) ENGINE=InnoDB;