次のようにTABLEとインデックスを作成しました
CREATE TABLE refresh_token ( user_id bigint, refresh_token テキスト、 access_token テキスト、 device_desc テキスト、 device_type テキスト、 expire_time タイムスタンプ、 org_id bigint、 PRIMARY KEY (user_id、refresh_token) ) WITH CLUSTERING ORDER BY (refresh_token ASC) CREATE INDEX i_access_token ON demodb.refresh_token (access_token);
何百万回もデータを挿入または削除した後、次のクエリでデータを返すことができないことがわかりました。実際、データにはこの行があります。
PRIMARY KEYでクエリすると
select * from refresh_token where user_id=405198 and refresh_token='E82B57D9D64BECDBD6B5602A72816BD19016323504F803116F66A32598E04298';
データを返します:
select * from refresh_token where user_id=405198 and refresh_token='E82B57D9D64BECDBD6B5602A72816BD19016323504F803116F66A32598E04298'; ユーザー ID | リフレッシュトークン | アクセストークン | device_desc | デバイスタイプ | 有効期限 | org_id ------+-------------------------------------------- --------------------------+-------------------------------------- -------------------------------------------+------ -------+-------------+--------------------------+- ------------- 405198 | E82B57D9D64BECDBD6B5602A72816BD19016323504F803116F66A32598E04298 | E82B57D9D64BECDB16D4F3F9F81AC0EF7AF2C4B460CB0F33C9CEFA5846BA7BE1 | null | null | null | null | 2016-06-07 14:09:52+0800 | 481036337156
しかし、セカンダリ インデックスでクエリを実行すると、null が返されます。
select * from refresh_token where access_token ='E82B57D9D64BECDB16D4F3F9F81AC0EF7AF2C4B460CB0F33C9CEFA5846BA7BE1'; ユーザー ID | リフレッシュトークン | アクセストークン | device_desc | デバイスタイプ | 有効期限 | org_id ------+---------------+--------------+--------- --+-------------+-------------+--------
ありがとう