怎么把数据库表里记录顺序打乱 数据库有10万条有序的记录,怎么样把它打乱呢,就是随机排序?性能怎么样?假设100万,1000万记录打乱顺序,那又该怎么办呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 insert into newTable (f1,f2,f3,..fn) select f1,f2,f3,..fn from oldTalbe order by rand(); 如果打乱了,那我查询的时候就不用select order by rand()了,因为已经是随机了 如果你的表里没有主键的话,可以按照下面的方式试试:首先,给表加一个字段:alter table t add column rands float default 1 primary key;然后,给这个字段赋值:update t set rands=rand();这样就可以完成在物理结构上的无序了。因为这个primary key是聚簇索引。但如果你的表已经有了主键或者UNIQUE字段的话,可以将他们暂时关闭,再按上面的方法做,但这样也许不是可以通过的。因为再次创建UNIQUE索引或者主键的时候,是无法创建的了,因为主键已经被rands字段使用了。 MySql数据查询速度问题 网页上显示这个Warning是什么意思? show variables读取的文件或数据表是哪个? “mysql安装配置问题”及“数据库导入eclipse”问题 MYSQL5.1安装失败 大数据量更新问题 mysql 我想在MYSQL批处理这个类型转换,大家进来帮我一下,谢谢! 如何将oracle中的视图转换到MYSQL中,要包括表结构和表中的数据 关于MySQL的几个基础问题 阿里云服务器 mysql5.6版本更新报错 MySql数据库的自动维护 求修改sql语句
如果打乱了,那我查询的时候就不用select order by rand()了,因为已经是随机了
首先,给表加一个字段:alter table t add column rands float default 1 primary key;
然后,给这个字段赋值:update t set rands=rand();
这样就可以完成在物理结构上的无序了。因为这个primary key是聚簇索引。
但如果你的表已经有了主键或者UNIQUE字段的话,可以将他们暂时关闭,再按上面的方法做,但这样也许不是可以通过的。因为再次创建UNIQUE索引或者主键的时候,是无法创建的了,因为主键已经被rands字段使用了。