mysql - 如何高效的查询需要合并大数据表的操作
天蓬老师
天蓬老师 2017-04-17 15:24:04
0
4
1031

1.存在两个数据库Shanghai和Beijing(假设其他数据丢失,中国人口数据只剩下上海和北京)
2.两个数据库中都有同样结构的表table_people,数据量都在一千万左右
3.有以下数据
Shanghai.table_people

id username birthday
1 jhon 2016-08-15 12:00:00
2 may 2016-08-14 13:00:00
3 abcd1111 2015-08-01 14:00:00
... .... .....

Beijing.table_people

id username birthday
1 mike 2016-08-16 23:58:00
2 kitty 2016-08-03 15:00:06
3 ab111 2014-01-01 15:16:18
... .... .....

问:
1.如何高效的(1s内)查出最近在中国出生的前十个人
2.对于YII框架数据提供器应该怎么写

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全員に返信(4)
洪涛

リーリー

このアイデアは大丈夫​​だと思いますか?

いいねを押す +0
迷茫

誕生日のタイプは文字列ではなく日時である必要があり、インデックスが作成されます。チェックするときは、最初にすべてを結合し、次に並べ替えてから 10 に制限します。 Mysql は内部的に 2 つのインデックスに対してマージ ソートを実行する必要があります

もっと速くしたい場合は、誕生日の型を int に変更してください

いいねを押す +0
伊谢尔伦

各テーブルは、条件を満たす最初の 10 個のデータを取得し、コード内で取得したデータを並べ替えて、最終的な上位 10 個のデータを取得します。

ただし、このようなコードを記述するのは非常に面倒なので、将来テーブルを追加する場合はコードを変更する必要があるため、データベース ミドルウェアに関する関連情報を探すことをお勧めします。

いいねを押す +0
巴扎黑

ID desc と制限 10 に従って 2 つの SQL が一時テーブルに挿入され、20 個のデータが時間でソートされてから制限 10

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート