国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

mysql - 如何高效的查詢需要合并大數據表的操作

瀏覽:160日期:2022-06-19 13:20:33

問題描述

1.存在兩個數據庫Shanghai和Beijing(假設其他數據丟失,中國人口數據只剩下上海和北京)2.兩個數據庫中都有同樣結構的表table_people,數據量都在一千萬左右3.有以下數據Shanghai.table_people

idusernamebirthday1jhon2016-08-15 12:00:002may2016-08-14 13:00:003abcd11112015-08-01 14:00:00............

Beijing.table_people

idusernamebirthday1mike2016-08-16 23:58:002kitty2016-08-03 15:00:063ab1112014-01-01 15:16:18............

問:1.如何高效的(1s內)查出最近在中國出生的前十個人2.對于YII框架數據提供器應該怎么寫

問題解答

回答1:

(SELECT * FROM Beijing.table_people ORDER BY birthday limit 10)union all(SELECT * FROM shanghai.table_people ORDER BY birthday limit 10)ORDER BY birthday limit 10

你看這種思路可以嗎?

回答2:

birthday類型得是datetime不能是string,然后作索引。查的時候先union all再order by再limit 10。mysql內部應該是就是對兩個索引做一下歸并排序

如果想更快,就把birthday類型改成int的

回答3:

每個表都取符合條件的前10條數據,然后再對取出來的數據在代碼里排序并取出最終的前10條數據。

不過這樣寫代碼也很累,以后加一個表就得改代碼,所以建議找一下數據庫中間件的相關資料。

回答4:

兩個sql,根據id desc 以及limit 10,都插入到一個臨時表,對20條數據時間排序再limit10

相關文章:
主站蜘蛛池模板: 广东省| 昌都县| 深泽县| 颍上县| 巫溪县| 九龙城区| 武义县| 河源市| 剑河县| 米林县| 万年县| 唐河县| 肇州县| 榆林市| 泸溪县| 兴安盟| 六枝特区| 西城区| 芒康县| 建阳市| 永年县| 宣化县| 江口县| 沙湾县| 张家川| 永宁县| 越西县| 榕江县| 连云港市| 无锡市| 镇安县| 温州市| 金塔县| 桓台县| 阿城市| 高清| 陈巴尔虎旗| 西乌| 布尔津县| 吐鲁番市| 乃东县|