相关疑难解决方法(0)

MyISAM与InnoDB

我正在研究涉及大量数据库写入的项目,我会说(70%的插入和30%的读取).该比率还包括我认为是一次读取和一次写入的更新.读取可能很脏(例如,在读取时我不需要100%准确的信息).
有问题的任务将是每小时进行超过100万次数据库事务.

我在网上看到了一些关于MyISAM和InnoDB之间差异的东西,对于我将用于此任务的特定数据库/表格来说,MyISAM似乎是我的明显选择.从我似乎正在阅读的内容来看,如果需要事务处理,InnoDB很好,因为支持行级锁定.

有没有人有这种负载(或更高)的经验?MyISAM是走的路吗?

mysql database performance myisam innodb

853
推荐指数
16
解决办法
29万
查看次数

如何在MySQL中进行批量插入

我需要在表中输入1-many个记录.在查询中执行此操作的最佳方法是什么?我应该只做一个循环并在每次迭代中插入一条记录吗?或者,还有更好的方法?

mysql sql database insert

125
推荐指数
4
解决办法
23万
查看次数

带有rewriteBatchedStatements = true的MySQL和JDBC

我一直在这里,这里,这里这里阅读使用的优点rewriteBatchedStatements=true

如果我理解正确的话,rewriteBatchedStatements=trueJDBC会将尽可能多的查询打包到一个网络数据包中,从而降低网络开销.我对吗?

然后我注意到MySQL服务器中定义的值max_allowed_packet可能会导致查询出现问题(查询未在服务器上执行).

所以我的第二个问题是,JDBC是否知道分配给它的值max_allowed_packet,因此使数据包小于定义的值,max_allowed_packet或者是开发人员必须考虑的内容?

如果我理解错了,请告诉我.

java mysql sql jdbc

47
推荐指数
1
解决办法
3万
查看次数

将二进制数据插入MySQL(没有PreparedStatement)

我试图在不使用预准备语句的情况下将一些二进制数据插入MySQL数据库.这样做的原因是我将数千个语句连接成一次运行一次.(究竟MySQL转储和导入是如何工作的)

我已经尝试了以下语句,但都失败了:

INSERT INTO my_table VALUES(1,'g = F| }X ',2);

INSERT INTO my_table VALUES(1,CAST('g = F| }X 'ASBINARY),2);

INSERT INTO my_table VALUES(1,CONVERT('g = F| }X ',BINARY),2);

INSERT INTO my_table VALUES(1,BINARY'g = F| }X ',2)

我得到的错误是:

com.mysql.jdbc.MysqlDataTruncation:数据截断:第1行的列'binary_data'的数据太长

我用来执行语句的代码很简单:

.conn.createStatement()的executeUpdate(SQL);

PreparedStatements工作正常(但在这种情况下速度太慢)

数据库中的实际String I显示有点不同:

G =÷的|¸} X£I [

二进制视图:67 3d 81 f7 19 f3 46 7c b8 7d 58 8c 10 a3 ec 5b

Java字节:103,61,-127,-9,25,-13,70,124,-72,125,88,-116,16,-93,-20,91

这可能与编码有关吗?

任何提示都很多,Ro

java mysql jdbc

5
推荐指数
1
解决办法
8387
查看次数

标签 统计

mysql ×4

database ×2

java ×2

jdbc ×2

sql ×2

innodb ×1

insert ×1

myisam ×1

performance ×1