我正在做一个项目,我在 MySQL 的优化方面遇到了一些问题。 我的主表看起来像并且有大约 100 万行:
+----+------+---------+
| id | Name | city_id | City_id is between (0, 2000).
+----+------+---------+
我会进行很多查询,例如:
- SELECT * FROM table WHERE city_id=x
- SELECT * FROM table WHERE city_id=x AND id=rand()
只是展示对这个数据库的主要操作
如果我要制作 2k 个小 table ,这会是一个好的解决方案吗?
最佳答案
我认为您正在寻找的解决方案是索引。试试这个:
create index idx_table_city_id on table(city_id, id);
SQL 旨在处理大型表。您想要将数据从一个表拆分到多个表的原因很少。我能想到的唯一好的理由是需要这样做以满足安全要求。
关于mysql - 搜索优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24220040/