小米miui澎湃 相册数据库db文件 表 gallery_sub.db

sqlite

gallery_sub.db

MediaFeature 43万行

 

 

Card
CustomWidgetDBEntity
DeleteRecord
FaceClusterInfo
FaceInfo
Library
MediaFeature
MediaRemarkInfo
MediaScene
PendingTaskInfo
PeopleCover
PeopleEvent
PersistentResponse
RecommendWidgetDBEntity
Record
SyncTag
TrashBinItem
TrashSyncTag
UnhandledScanTaskRecord
android metadata
sqlite_sequence

 

 

 

SyncTag    1
Card    133
TrashSyncTag    1
Library    69
PendingTaskInfo    6673
MediaFeature    434302
MediaScene    78174
FaceClusterInfo    7189
FaceInfo    41505
PeopleEvent    116
Record    143
DeleteRecord    259568
MediaRemarkInfo    602
TrashBinItem    594
UnhandledScanTaskRecord    614832

 

 

gallery.db

sqlite windows powershell 获取某个数据库文件的所有表各有多少行

$db  = 'G:\mi10ultra\data..data..com.miui.gallery20250627\databases\gallery.db'

$sql = @'
SELECT 'SELECT "' || name || '", COUNT(*) FROM "' || name || '";'
FROM   sqlite_master
WHERE  type='table' AND name NOT LIKE 'sqlite_%';
'@

$sql | & sqlite3.exe $db | & sqlite3.exe $db

解析一下上面这个
SELECT 'SELECT "' || name || '", COUNT(*) FROM "' || name || '";'

SELECT 'a' || name || 'b' || name || 'c'

||是拼接字符串的作用

最后Select输出的是

a name1 b name1 c

a name2 b name2 c

这样的name就是一个个表名

 

 

android_metadata|1
cloud|169977
cloudSetting|1
shareImage|0
shareUser|0
cloudUser|0
cloudCache|0
userInfo|1
ownerSubUbifocus|0
shareSubUbifocus|0
peopleFace|0
faceToImages|0
peopleRecommend|0
discoveryMessage|1
recentDiscoveredMedia|36819
cloudControl|25
favorites|1163
album|36
shareAlbum|0

 

gallery_sub.db

android_metadata|1
Card|152
PendingTaskInfo|4
PersistentResponse|0
MediaRemarkInfo|0
PeopleCover|0
DeleteRecord|4295
Record|162
Library|74
SyncTag|1
TrashBinItem|48
TrashSyncTag|1
FaceInfo|45216
FaceClusterInfo|37
PeopleEvent|117
MediaFeature|531866
MediaScene|87877
CustomWidgetDBEntity|0
RecommendWidgetDBEntity|0
UnhandledScanTaskRecord|0

 


 

下面这个不行,大概是转义换行的问题

# 把数据库路径放进变量可读性更好
$db = 'G:\mi10ultra\data..data..com.miui.gallery20250627\databases\gallery.db'

& sqlite3.exe $db '
  SELECT ''SELECT ""'' || name || '"" , COUNT(*) FROM ""'' || name || '"";'' 
  FROM   sqlite_master
  WHERE  type=''table'' AND name NOT LIKE ''sqlite_%'';
' | & sqlite3.exe $db

 

posted @ 2025-04-19 15:03  hrdom  阅读(33)  评论(0)    收藏  举报