Jump to content

Improve query that compares from several columns


king.oslo

Recommended Posts

Hello,

 

I have made this query:

 

SELECT DISTINCT tmp.id FROM 
(
SELECT id FROM database.table_index WHERE unixTimestamp > 1266793200 
UNION 
SELECT id FROM database.table_truser WHERE unixTimestamp > 1266793200 
UNION 
SELECT id FROM database.table_undies WHERE unixTimestamp > 1266793200 
UNION 
SELECT id FROM database.table_about_product WHERE unixTimestamp > 1266793200 
UNION 
SELECT id FROM database.table_cart_2 WHERE unixTimestamp > 1266793200 
UNION 
SELECT id FROM database.table_dirty WHERE unixTimestamp > 1266793200 
UNION 
SELECT id FROM database.table_faq WHERE unixTimestamp > 1266793200 
UNION 
SELECT id FROM database.table_final WHERE unixTimestamp > 1266793200 
UNION 
SELECT id FROM database.table_gtbill_postpay WHERE unixTimestamp > 1266793200 
UNION 
SELECT id FROM database.table_lek WHERE unixTimestamp > 1266793200 
UNION 
SELECT id FROM database.table_pool_product WHERE unixTimestamp > 1266793200 
UNION 
SELECT id FROM database.table_custompay WHERE unixTimestamp > 1266793200 
UNION 
SELECT id FROM database.table_send WHERE unixTimestamp > 1266793200 
UNION 
SELECT id FROM database.table_send_bank WHERE unixTimestamp > 1266793200 
UNION 
SELECT id FROM database.table_send_order WHERE unixTimestamp > 1266793200 
UNION 
SELECT id FROM database.table_tnc WHERE unixTimestamp > 1266793200

) AS tmp WHERE id IN (
SELECT id FROM database.table_index WHERE unixTimestamp < 1266793200 
UNION 
SELECT id FROM database.table_truser WHERE unixTimestamp < 1266793200 
UNION 
SELECT id FROM database.table_undies WHERE unixTimestamp < 1266793200 
UNION 
SELECT id FROM database.table_about_product WHERE unixTimestamp < 1266793200 
UNION 
SELECT id FROM database.table_cart_2 WHERE unixTimestamp < 1266793200 
UNION 
SELECT id FROM database.table_dirty WHERE unixTimestamp < 1266793200 
UNION 
SELECT id FROM database.table_faq WHERE unixTimestamp < 1266793200 
UNION 
SELECT id FROM database.table_final WHERE unixTimestamp < 1266793200 
UNION 
SELECT id FROM database.table_gtbill_postpay WHERE unixTimestamp < 1266793200 
UNION 
SELECT id FROM database.table_lek WHERE unixTimestamp < 1266793200 
UNION 
SELECT id FROM database.table_pool_product WHERE unixTimestamp < 1266793200 
UNION 
SELECT id FROM database.table_custompay WHERE unixTimestamp < 1266793200 
UNION 
SELECT id FROM database.table_send WHERE unixTimestamp < 1266793200 
UNION 
SELECT id FROM database.table_send_bank WHERE unixTimestamp < 1266793200 
UNION 
SELECT id FROM database.table_send_order WHERE unixTimestamp < 1266793200 
UNION 
SELECT id FROM database.table_tnc WHERE unixTimestamp < 1266793200
)

 

 

Each table has identical structure:

 

Field         	Type
id	        int(10)
unixTimestamp	int(20)

 

THE QUESTION:

----------------------

When it executes, it is very slow (14 sec), returning about 50 rows. I figured there must be a better way to make this query that is faster and better?

 

Thanks,

Marius

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.