0

データベースには任意の数のユーザーがいます(これは100、2000、または3の場合があります)。mysqlの「showtables」を使用してテーブル名を配列に格納し、whileループを実行してすべてのテーブル名(ユーザー名)を取得してコードに挿入すると、すべてのテーブル名に対して上記のコードを実行します。ユーザーが3人の場合、このスクリプトには約20秒かかります。Twitter APIを使用し、いくつかのmysql挿入を行います。これはそれを行うための最も効率的な方法ですか?

4

3 に答える 3

5

確かに違います!

各ユーザーをテーブルに保存する理由がわかりません。usersテーブルを作成し、そこから選択する必要があります。

0.0001秒で実行されます。

アップデート:

テーブルには行と列があります。複数のユーザーを行に格納し、各ユーザーに関する情報を列に格納できます。

いくつかのデータベース設計のチュートリアル/本を試してみてください。それらはあなたに大いに役立ちます。

于 2011-01-17T16:59:19.080 に答える
0

同じusersテーブル内にユーザーごとに複数のエントリを格納することを心配している場合は、tweet_idがユーザーを参照するツイート用に個別のテーブルを作成できます。

私は確かに1人のユーザーテーブルに行きます。

于 2011-01-17T17:05:02.670 に答える
0

データベースは、多くの行を処理するために最適化されています。使用される手法には、インデックス、ディスク上のデータの物理的なレイアウトなどがあります。多くのテーブルでの操作は常に遅くなります。これは、RDBMSが実行するように構築されたものではありません。

例外が1つあります。シャーディング(データのパーティション化)によってデータベースを最適化する場合がありますが、このアプローチには欠点と同じくらい多くの利点があります。欠点の1つは、説明したようなクエリに時間がかかることです。

すべてのユーザーを1つのテーブルに配置する必要があります。これは、論理的な観点から、ユーザーは1つのエンティティを表すためです。

于 2011-01-17T17:06:38.750 に答える