好幾次合服後,遊戲裏面的賬號達到了100w上,整點的一些操作導致服務器響應很慢,後來發現,作爲研發方我們沒必要存沒有實際內容的賬號,那遊戲來說就是,沒必要存沒有角色的賬號,畢竟有角色的賬號有的服甚至到不了百分之一。
於是決定刪除這些沒角色的賬號。
select count(*) from user;
+----------+
| count(*) |
+----------+
| 1004897 |
+----------+
select count(*) from player;
+----------+
| count(*) |
+----------+
| 57342 |
+----------+
delete from user where id not in (select user_id from player)
+----------+
| count(*) |
+----------+
| 0 |
+----------+
怎麼想都覺得納悶,因爲user的id跟player的user_id都是唯一的
無意間想到null的情況。
一查果然
select user_id from player
裏面 有null的情況存在導致結果出現異常。
刪除 那條記錄後一切正常
看來null不近在語言中需要特殊考慮,在數據庫中也是個比較特殊的情況。。