Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3598326
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 18, 20262026-05-18T20:13:42+00:00 2026-05-18T20:13:42+00:00

I have a table w/ 3 columns: name, phone, date. I have 3 indexes:

  • 0

I have a table w/ 3 columns: name, phone, date.
I have 3 indexes: 1 on phone, 1 on date and 1 on phone and date.
I have the following statement:

SELECT * FROM ( SELECT * FROM people WHERE phone IS NOT NULL ORDER BY date DESC) as t GROUP BY phone

Basically, I want to get all unique phone numbers ordered by date. This table has about 2.5 million rows but takes forever to execute….are my indexes right?

UPDATE:

My EXPLAIN statement comes back with 2 rows: 1 for primary table and 1 for derived table.

It says I am using temporary and using filesort for my primary table.

For my derived table, it says my possible keys are (phone), and (phone, date) but it is using filesort.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-18T20:13:42+00:00Added an answer on May 18, 2026 at 8:13 pm

    I think your 3rd index is redundant, since it should already be covered by the individual indexes on the date and phone columns.

    However, in your case I don’t think the indexes are the real cause of the query being slow. Instead the real problem is probably the inner query that is producing huge temporary data set and as far as I know MySql is not really optimized for this.

    UPDATE:
    I think the following query should have the same output as yours, but would avoid the inner select:

    SELECT phone, max(date) as maxDate 
    FROM people 
    WHERE phone IS NOT NULL 
    GROUP BY phone
    ORDER BY maxDate DESC
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a table w/ 3 columns: name, phone, date. I have 3 indexes:
I have a table with columns: Date, Phone, Name, and Event. I need a
I have a DataGrid table with columns name , phone . In column name
I have a Name table with the columns NameID Name TypeID With the following
If I have a table with columns id , name , score , date
I have a very simple HTML table with 4 columns: Facility Name, Phone #,
Need some help. I have a table with some columns..like name , phone etc...
I have a table: event_list with two columns: name as var(80) and default as
I have a table with columns 'id', 'name', 'value', 'uniqueConst' in both databases. Now
I have a table with three filled columns named Name, City and Occupation. I

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.