[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["難以理解","hardToUnderstand","thumb-down"],["資訊或程式碼範例有誤","incorrectInformationOrSampleCode","thumb-down"],["缺少我需要的資訊/範例","missingTheInformationSamplesINeed","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2025-09-04 (世界標準時間)。"],[[["\u003cp\u003eDevelopers should strongly consider using the NDB Client Library instead of the older DB Client Library due to benefits like automatic entity caching.\u003c/p\u003e\n"],["\u003cp\u003eDatastore maintains and provides statistics about stored data, including entity counts and storage usage, viewable in the Google Cloud console or accessible programmatically.\u003c/p\u003e\n"],["\u003cp\u003eStatistics are represented as entities with names starting and ending with double underscores, containing properties like \u003ccode\u003ecount\u003c/code\u003e, \u003ccode\u003ebytes\u003c/code\u003e, and \u003ccode\u003etimestamp\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eStatistic entities are progressively dropped in specific orders to manage overhead, starting with per-namespace, per-kind, and per-property statistics.\u003c/p\u003e\n"],["\u003cp\u003eThe complete list of available statistics includes categories like total entities, entities per namespace, and properties by type, with each statistic having an entity kind name, python class, and unique properties.\u003c/p\u003e\n"]]],[],null,["# Datastore Statistics in legacy bundled services\n\n**Note:**\nDevelopers building new applications are **strongly encouraged** to use the\n[NDB Client Library](/appengine/docs/legacy/standard/python/ndb), which has several benefits\ncompared to this client library, such as automatic entity caching via the Memcache\nAPI. If you are currently using the older DB Client Library, read the\n[DB to NDB Migration Guide](/appengine/docs/legacy/standard/python/ndb/db_to_ndb)\n\nDatastore maintains statistics about the data stored for an\napplication, such as how many entities there are of a given kind, or how much\nspace is used by property values of a given type. You can view these statistics\nin the Google Cloud console, in the\n[Dashboard](https://console.cloud.google.com/datastore/stats) page.\n\nYou can also access these values programmatically within the application by\nquerying for specially named entities using the Datastore API.\nEach statistic is accessible as an entity whose kind name begins and ends with\ntwo underscores. For example, each app has exactly one entity of the kind\n`__Stat_Total__` that represents statistics about all of the entities in\nDatastore in total. Each statistic entity has the following\nproperties:\n\n- `count`, the number of items considered by the statistic (a long integer)\n- `bytes`, the total size of the items for this statistic (a long integer)\n- `timestamp`, the time of the most recent update to the statistic (a date-time value)\n\nSome statistic kinds also have additional properties, listed below.\n\nA Python application can use model classes provided by the package\n`google.appengine.ext.db.stats` to access statistic entities. \n\n from google.appengine.ext.db import stats\n\n global_stat = stats.GlobalStat.all().get()\n print 'Total bytes stored: %d' % global_stat.bytes\n print 'Total entities stored: %d' % global_stat.count\n\nWhen the statistics system creates new statistic entities, it does not delete\nthe old ones right away. The best way to get a consistent view of the\nstatistics is to query for the\n`GlobalStat`\n\nentity with the most recent\n`timestamp`, then use that timestamp value as a filter when fetching other\nstatistic entities.\n\nThe statistic entities are included in the calculated statistic values.\nStatistic entities take up space relative to the number of unique kinds and\nproperty names used by the application.\n\nThe statistics system will also create statistics specific to each\n[namespace](/appengine/docs/legacy/standard/python/multitenancy)\nNote that if an application does not use Datastore namespaces\nthen namespace specific statistics will not be created. Namespace specific stats\nare found in the namespace that they're specific to. The kind names for\nnamespace specific stats are prefixed with `__Stat_Ns_` and have the same\ncorresponding suffix as application wide statistics kinds.\n\nApplications with thousands of namespaces, kinds, or property names require a\nvery large number of statistics entities. To keep the overhead of storing and\nupdating the statistics reasonable, Datastore progressively\ndrops statistics entities, in the following order:\n\n- per-namespace, per-kind, and per-property statistics: `__Stat_Ns_PropertyName_Kind__`, `__Stat_Ns_PropertyType_PropertyName_Kind__`\n- per-kind and per-property statistics: `__Stat_PropertyName_Kind__`, `__Stat_PropertyType_PropertyName_Kind__`\n- per-namespace and per-kind statistics: `__Stat_Ns_Kind__`, `__Stat_Ns_Kind_IsRootEntity__`, `__Stat_Ns_Kind_NotRootEntity__`, `__Stat_Ns_PropertyType_Kind__`\n- per-kind statistics: `__Stat_Kind__`, `__Stat_Kind_IsRootEntity__`, `__Stat_Kind_NotRootEntity__`, `__Stat_PropertyType_Kind__`\n- per-namespace statistics: `__Stat_Namespace__`, `__Stat_Ns_Kind_CompositeIndex__`, `__Stat_Ns_PropertyType__`, `__Stat_Ns_Total__`\n\nThe summary statistics entities (`__Stat_Kind_CompositeIndex__`,\n`__Stat_PropertyType__`, `__Stat_Total__`) are never dropped.\n\nThe complete list of available statistics is as follows:\n\nSome statistics refer to Datastore property value types by\nname, as strings. These names are as follows:\n\n- `\"Blob\"`\n- `\"BlobKey\"`\n- `\"Boolean\"`\n- `\"Category\"`\n- `\"Date/Time\"`\n- `\"Email\"`\n- `\"Float\"`\n- `\"GeoPt\"`\n- `\"IM\"`\n- `\"Integer\"`\n- `\"Key\"`\n- `\"Link\"`\n- `\"NULL\"`\n- `\"PhoneNumber\"`\n- `\"PostalAddress\"`\n- `\"Rating\"`\n- `\"ShortBlob\"`\n- `\"String\"`\n- `\"Text\"`\n- `\"User\"`\n\n| **Note:** `__Stat_Namespace__` entities contain the same information found in `__Stat_Ns_Total__` records. `__Stat_Namespace__` entities are stored in the empty namespace and contain a `subject_namespace` field describing the namespace to which they belong. `__Stat_Ns_Total__` records are stored in the namespace to which they refer, and thus do not contain a `subject_namespace` field. Hence, a query on kind `__Stat_Namespace__` (from the empty string namespace) ordered descending by `bytes` will list the namespaces that consume the largest storage first. Because queries across namespaces are not possible, any query for `__Stat_Ns_Total__` entities will only ever produce at most a single record."]]