mysql執行多表查詢,大資料,sql該怎麼寫。
假設兩個表 A B。兩個表結構相同。現在要取出A表的所有欄位和B表的set,rutime欄位。兩個表的ID相同。
因為資料量比較大,兩個表在100w左右,之後還可能會有多個這樣大的表。
我在phpmyadmin中拿
select * from A as a,B as b where a.haoma = b.haoma
測試的時候就已經跑死掉了。哪位大蝦協助寫一下這個sql
分享到:
------解決方案--------------------
haoma 是主鍵麼,如果不是的話建立索引試試。
------解決方案--------------------
select * from A as a,B as b where a.haoma = b.haoma
只要在 haoma 上都建有索引,查詢只是瞬間的事情
但是輸出可是要很花一些時間的!
你把100萬條記錄都列印出來嗎?顯然是腦袋有毛病了
------解決方案--------------------
直接
insert into c(......)
select ecs_ershi.* ,ecs_erjiu.set
from ecs_ershi inner join ecs_erjiu on ecs_ershi.haoma=ecs_erjiu.haoma
limit 0,29
即可,
不要輸出。。。
------解決方案--------------------
引用:
select * from A as a,B as b where a.haoma = b.haoma
只要在 haoma 上都建有索引,查詢只是瞬間的事情
但是輸出可是要很花一些時間的!
你把100萬條記錄都列印出來嗎?顯然是腦袋有毛病了
膜拜大神,我是來拿分的。
------解決方案--------------------
這個應該體現出來索引的作用了。查詢上百萬條的記錄很慢了。
------解決方案--------------------
1.上面說的,建立有效索引
2.如果資料量以後還會增加的話建立分表
3.表的結構涉及到字元比較長的獨立出來新表中
4.查詢使用預存程序來實現
------解決方案--------------------
desc select * from A as a,B as b where a.haoma = b.haoma給表加上索引,就很快的,如果有where條件查詢,可以加上全文索引。