需求:数据库字段point存储经纬度:116,39,逗号隔开,现在要拆分开 分别存入lon lat
方式1:使用java 代码
全部读入内存-----split(",")-------setLon setLat ---------updateById
经过测试,11W数据,耗时3小时以上,且容易内存溢出
方式2:使用mysql存储过程
-- 创建存储过程之前需判断该存储过程是否已存在,若存在则删除
DROP PROCEDURE IF EXISTS init_reportUrl;
-- 创建存储过程
CREATE PROCEDURE init_reportUrl()
BEGIN
-- 定义变量
DECLARE s int DEFAULT 0;
DECLARE temp_id int(10); -- 这个变量是用来放游标里的变量数据的
DECLARE temp_point varchar(256); -- 这个变量是用来放游标里的变量数据的
DECLARE a1 VARCHAR(122);
DECLARE a2 VARCHAR(122);
-- 定义游标,并将sql结果集赋值到游标中
DECLARE report CURSOR FOR select id,point from good_food; -- 定义游标去拿哪些字段数据
-- 声明当游标遍历完后将标志变量置成某个值
DECLARE CONTINUE HANDLE

本文介绍了一种在MySQL中拆分存储在单个字段中的经纬度数据的方法,并对比了使用Java代码、MySQL存储过程和SQL更新三种方式的性能。结果显示,使用MySQL存储过程最快,仅需30秒即可处理12万条记录。
最低0.47元/天 解锁文章
500

被折叠的 条评论
为什么被折叠?



