mysql随机数生成原理?
1) 产生0到1000间的随机数
SELECT RAND() * 10000;
对应产生相应的整数
SELECT FLOOR(RAND() * 10000)
2) 使用md5()产生32位随机字符串
SELECT MD5(RAND() * 10000)
图片来源:网络
3) 产生500-1000间的整形
SELECT FLOOR( 500 + RAND() * (1000 - 500))
4) 假设某表如下结构
CREATE TABLE fact ( dim1 int, dim2 int, name varchar(20),
hash varchar(32),
measure1 double );
则可以自动产生适合其结构的大量随机记录 create table names(id int auto_increment primary key, name varchar(20));
insert into names (name) values ('Justin','Jerry','James','Josh','Julien');
select (select name from names where id = 1 + rand() * 4);
这里有一个表专门产生随机的字符串;
INSERT INTO fact SELECT FLOOR(1+ rand()*9999), FLOOR(1 + rand()*499), (select name from names where id = 1 + rand() * 4), MD5(1+rand()*9999), rand() FROM fact;
MySQL在有索引的字段里插入随机字符和插入顺序递增的字符,有什么不同?
数据库表的数据,在物理文件上是按照主键连续的,其他索引大多数只是树型结构,一搬为B-tree,是否按照顺序影响不大,而索引类型会有影响,因为要进行比较然后构建索引树,