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

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)
洪涛

으아악

이 아이디어가 괜찮다고 생각하시나요?

迷茫

생일 유형은 문자열이 아닌 날짜/시간이어야 하며 색인이 생성되어야 합니다. 확인할 때 먼저 모두 유니온한 다음 주문한 다음 10개로 제한합니다. MySQL은 내부적으로 두 인덱스에 대해 병합 정렬을 수행해야 합니다

더 빠르게 하고 싶다면 생일 유형을 int로 변경하세요

伊谢尔伦

각 테이블은 조건을 충족하는 처음 10개의 데이터를 가져온 다음 검색된 데이터를 코드에서 정렬하고 마지막 상위 10개의 데이터를 검색합니다.

그러나 이런 식으로 코드를 작성하는 것도 매우 피곤한 일입니다. 나중에 테이블을 추가하면 코드를 변경해야 하므로 데이터베이스 미들웨어.

巴扎黑

ID desc와 Limit 10에 따라 두 개의 SQL을 임시 테이블에 삽입하고 20개의 데이터를 시간별로 정렬한 후 10개를 제한합니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿