mysql uuid是不是有序增加的??

psufnxk2000發表於2016-07-23

A UUID is designed as a number that is globally unique in space and time. Two calls to UUID() are
expected to generate two different values, even if these calls are performed on two separate computers
that are not connected to each other.
uuid是世界上唯一的,就算兩個沒有任何關係的計算機uuid也是不同的

但是文件上卻沒有說到他是不是有序的,網上都說uuid是無序,我想一個場景試一下:

場景解釋:
建一個表,裡面有兩個欄位 uuid和時間。
每一秒向這個表裡插入一條資料,分別是 uuid()和now()

插入一段時間之後,如果按id排序和按t_date排序得到的結果是一樣的,那麼應該可以證明uuid是有序的,如果排序結果不一樣,那麼是無序的。

我這裡兩個程式同時插入,並且跑了兩個小時

模擬過程:
在mysql 5.6上測試
mysql> create table song( id char(36), t_date datetime);
Query OK, 0 rows affected (0.00 sec)


cat insert.sh
#!/bin/bash
while true; do
mysql -h10.13.52.100 -P3306 -uroot -ptest  -e "insert into test.song select uuid(),now();"
sleep 1
done


nohup sh insert.sh &
nohup sh insert.sh &

兩個一起插入

執行大概兩個小時,停掉insert.sh後:

mysql -h10.13.52.100 -P3306 -uroot -ptest  -e "select * from test.song order by t_date;" > a.log
mysql -h10.13.52.100 -P3306 -uroot -ptest  -e "select * from test.song order by id;" > b.log
diff a.log b.log  -y > c.log

[root@10-13-59-213 ~]# vim c.log
id      t_date                                                  id      t_date
b6af9995-50d2-11e6-9d61-5254005ae15d    2016-07-23 20:41:01   | 0019655a-50d5-11e6-9d61-5254005ae15d    2016-07-23 20:57:24
cc161c32-50d2-11e6-9d61-5254005ae15d    2016-07-23 20:41:37   | 001968e2-50d5-11e6-9d61-5254005ae15d    2016-07-23 20:57:24
ccafd852-50d2-11e6-9d61-5254005ae15d    2016-07-23 20:41:38   <
cd495dc1-50d2-11e6-9d61-5254005ae15d    2016-07-23 20:41:39   <

從c.log中可以看到a.log和b.log的不同。 那麼 uuid()是無序的




轉載請註明源出處
QQ 273002188 歡迎一起學習
QQ 群 236941212
oracle,mysql,PG 相互交流

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25099483/viewspace-2122432/,如需轉載,請註明出處,否則將追究法律責任。

相關文章