用mysql函数实现随机数的方法
没关系
但是,这是一个真正的测试,发现效率非常低。一个超过15千个数据库的数据库,查询5个数据,实际上需要超过8秒的时间来检查官方手册。同时,伦德()按序执行多次,自然效率很低。
搜索谷歌,互联网基本上是查询MAX(ID)* *(),以便随机访问数据。
*选择
从'表'作为T1连接(选择圆(兰德)*(从中选择max(id)))
在t1.id = t2.id
通过t1.id ASC限制5阶;
但是这将产生5个连续的记录。这个解决方案每次只有一个查询和5个查询。即使如此,它也是值得的,因为15万个表,查询只需要不到0.01秒。
*选择
从'表'
其中id(选择楼层=(最大*)(id)(从)表')
按ID限制订单1;
我测试了它,它花了0.5秒,速度很好,但是和上面的语句有很大的差距,总是有问题,所以我重写了语句。
从表中选择*
其中id(选择楼层=(兰德)* *(从表中选择(max(id))))
按ID限制订单1;
在这种情况下,效率提高了,查询时间在最后只有0.01秒,然后这个句子是完美的,加上min(id)判断。在测试开始时,我没有添加一个min(id)判断,结果是查询表中前几行的一半时间。
完整的查询语句是:
从表中选择*
其中ID(从(表)表(选择)- min(id)(选择)+表(+))中选择(=(*)(选择max(id)))
按ID限制订单1;
*选择
从'表'作为T1连接(选择圆(兰德())*((选择max(ID)选择))(+(max)(选择))+((x)))
在t1.id = t2.id
通过t1.id限1阶;
最后,这两个语句分别在PHP中进行了10次查询。
前者需要0.147433秒。
后者需要0.015130秒。
以上是mysql函数实现随机数的方法。