我有〜100000个条目的数据库 - 现在我的查询看起来是这样的:慢MySQL查询/ IN子句
SELECT ID,邮编,价格从上市WHERE邮编IN(96815,96815, 96835 ,96828,96830,96826,96836,96844,96816,96847,96814,96822, 96823,96843,96805,96806,96810,96848,96808,96809,96842,96839, 96802,96812,96804,96803,96840,96840, ,96807,96813,96841,96801,96850, 96811,96898,96837,96827,96824,96846,96821,96817,96859,96838, 96819,96820,96858,96849,96825,96795,96863,96818,96853 ,96861, 96734,96744,9 6701,96860,96709,96782,96706,96797,96862,96789, 96707,96730,96854,96759,96786,96857,96717,96792,96762,96712, 96791,96731)和(价格在1000和1200之间的价格) ORDER BY ID
这个查询工作得很好,当我只有50 000个,但它变得非常缓慢,当我延长了邮政编码的半径(这将导致更多的邮政编码的条款)。
ID INT(8)AUTO_INCREMENT价格MEDIUMINT(7) 邮政编码MEDIUMINT(5)
所有三个字段索引。有没有人有一个想法,我可以优化它?谢谢你们
我敢肯定,如果你有一个索引,很多邮政编码在IN子句中即使该字段被索引,它也会运行缓慢。我不知道如何解决这个问题,除了限制拉链的数量。 –
我可以在邮政编码列表中看到重复的值。确保你只给出不同的值和增量。 – ysrb