8

私は、LAMP スタック上に構築されたプロジェクト管理プログラムに取り組んでいます。クライアントごとに独自のデータベースを提供するのではなく、すべてのビジネス データを 1 つの大きなデータベースに結合することを暫定的に選択しました。

すべてのデータベース テーブルの最初の列は business_id です。この行は、特定のデータがどのビジネスに属しているかを示しているため、ビジネス 1 のデータがビジネス 2 に公開されることはありません。

しかし、課金の問題を解決しようとしているので、月に 1 回 cron ジョブを実行して、各企業が使用しているデータベース容量を判断できると非常に便利です。だからここに私の質問があります:MySQL がすべての行 WHERE business_id = 'x' で使用されているバイト数を返すようにする方法はありますか?

4

2 に答える 2

0

お役に立てれば:

SELECT
  table_schema, count(*) TABLES,
  concat(round(sum(table_rows)/1000000,2),'M')
  rows,concat(round(sum(data_length)/(1024*1024*1024),2),'G')
  DATA,concat(round(sum(index_length)/(1024*1024*1024),2),'G')
  idx,concat(round(sum(data_length+index_length)/(1024*1024*1024),2),'G')
  total_size,round(sum(index_length)/sum(data_length),2) idxfrac
FROM
  information_schema.TABLES group by table_schema;
于 2013-06-05T13:25:04.290 に答える