Mysql insert语句的优化,mysqlinsert语句
1) 如果你同时从同一客户插入很多行,使用多个值表的INSERT语句。这比使用分开INSERT语句快(在一些情况中几倍)。
Insert into test values(1,2),(1,3),(1,4)…
2) 如果你从不同客户插入很多行,能通过使用INSERT DELAYED语句得到更高的速度。Delayed的含义是让insert 语句马上执行,其实数据都被放在内存的队列中,并没有真正写入磁盘;这比每条语句分别插入要快的多;LOW_PRIORITY刚好相反,在所有其他用户对表的读写完后才进行插入。
3) 将索引文件和数据文件分在不同的磁盘上存放(利用建表中的选项)。
4) 如果进行批量插入,可以增加bulk_insert_buffer_size变量值的方法来提高速度,但是,这只能对myisam表使用。
5) 当从一个文本文件装载一个表时,使用LOAD DATA INFILE。这通常比使用很多INSERT语句快20倍。
6) 根据应用情况使用replace语句代替insert。
7) 根据应用情况使用ignore关键字忽略重复记录。
先查询出来然后再 插入
你可用以下任一种方式:
insert problemprocess values(null,"it's a useful book");
insert problemprocess values(null,'it''s a useful book');
insert problemprocess values(null,'it\'s a useful book');
在数据库应用程序中可对收集到的字符串做替换操作,如:
sometext = sometext.replaceAll("\'","\'\'")
sometext = sometext.replaceAll("\"","\\\"")
sometext = sometext.replaceAll("\、","\\\\")
....
如果在java用jdbc操作数据库,还可以用PreparedStatement ,如:
PreparedStatement pstmt =connection.prepareStatement(sql);
....
String sometext = textfield.getTest(); --取得用户输入的内容
pstmt.setInt(2, sometext );
pstmt.executeUpdate();
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。