Mysql中随机查询数据的几种算法
欢迎关注笔者的微信公众号
有这样一个需求,需要随机在数据库中选择一条(或多条)数据,刚开始觉得很简单,研究后发现学问很多。
首先,数据库主键使用雪花算法生成,其有如下性质:
- 全局唯一性
- 递增性
- 高可用性
- 高性能性
数据表结构
mysql> desc t_words;
+-----------+--------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+-------------------+-----------------------------+
| id | bigint(25) | NO | PRI | NULL | |
| content | varchar(500) | NO | | NULL | |
| tags | varchar(50) | YES | | | |
| timestamp | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+-----------+--------------+------+-----+-------------------+-----------------------------+
4 rows in set (0.00 sec)