mysql的项目,需要设计一个快速上载的机制
最后的解决办法是利用了mysql的预处理语句的特性实现的
mysql的预处理语句支持多行数据的预处理,即insertinto(columnName,columnName,)values(,,)(,,)
这样你在绑定输入参数的时候可以在程序里将整张表的数据都绑定好然后调用一次执行就能将整张表的数据插入,比用mysql_query一行一行插入省的几倍的时间
不过你一次发到mysql服务器端的数据多的情况下,要设置my
ini文件下的一个配置项,把服务器允许一次发送的数据包的大小调大就行
第一种,很简单,适用于任何存储引擎。
1 下载并安装好新版本的MySQL数据库,并将其端口改为3307(避免和旧版本的3306冲突),启动服务。
2 在新版本下创建同名数据库。
# mysqldump -p3307 -uroot create mysqlsystems_com
3 在旧版本下备份该数据库。
# mysqldump -p3306 -uroot mysqlsystems_com > mysqlsystems_combk
Note: 你也可以加上–opt选项,这样可以使用优化方式将你的数据库导出,减少未知的问题。
4 将导出的数据库备份导入到新版本的MySQL数据库中。
# mysql -p3307 -uroot mysqlsystems_com < mysqlsystems_combk
5 再将旧版本数据库中的data目录下的mysql数据库全部覆盖到新版本中。
# cp -R /opt/mysql-51/data/mysql /opt/mysql-54/data
Note: 大家也都知道这个默认数据库的重要性。
6 在新版下执行mysql_upgrade命令,其实这个命令包含一下三个命令:
# mysqlcheck –check-upgrade –all-databases –auto-repair
# mysql_fix_privilege_tables
# mysqlcheck –all-databases –check-upgrade –fix-db-names –fix-table-names
Note: 在每一次的升级过程中,mysql_upgrade这个命令我们都应该去执行,它通过mysqlcheck命令帮我们去检查表是否兼容新版本的数据库同时作出修复,还有个很重要的作用就是使用mysql_fix_privilege_tables命令去升级权限表。
7 关闭旧版本,将新版的数据库的使用端口改为3306,重新启动新版本MySQL数据库。到此,一个简单环境下的数据库升级就结束了。
第二种,同样适用任何存储引擎。
1 同样先安装好新版本的MySQL。
2 在旧版本中,备份数据库。
# mkdir /opt/mysqlsystems_bk ; mysqldump -p3306 -uroot –tab=/opt/mysqlsystems_bk mysqlsystems_com
Note: –tab选项可以在备份目录mysqlsystems_bk下生成后缀为sql和txt的两类文件;其中,sql保存了创建表的SQL语句而txt保存着原始数据。
3 接下来在新版本的数据库下更新数据。
# mysqladmin -p3307 -uroot create mysqlsystems_com
# cat /opt/mysqlsystems_bk/sql | mysql -p3307 -uroot mysqlsystems_com ( Create Tables )
# mysqlimport mysqlsystems_com /opt/mysqlsystems_bk/txt ( Load Data )
4 之后的所有步骤与第一种方法的后三步5、6、7相同。
第三种,适用于MyISAM存储引擎,全部是文件间的拷贝。
1 安装。
2 从旧版本mysqlsystems_com数据库下将所有frm、MYD 和MYI文件拷贝到新版本的相同目录下。
3之后的步骤依然同于第一种的后三步。
以上就是关于大批量插入数据,mysql批量更新与插入多种(数据库批量更新大量数据)全部的内容,包括:大批量插入数据,mysql批量更新与插入多种(数据库批量更新大量数据)、怎么UPDATE 整个数据库 mysql的、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)