Mysql 搜索优化

Mysql 搜索优化,mysql,Mysql,我正在做一个项目,我对MySQL的优化有一些问题。 我的主表看起来像,大约有1百万行: +----+------+---------+ | id | Name | city_id | City_id is between (0, 2000). +----+------+---------+ 我将提出许多问题,如: 从city_id=x的表格中选择* 从city_id=x和id=rand()的表格中选择* 它仅显示此数据库上的主要操作 如果我制作2k个小表,这是一个好的解决方案吗?我认为您正

我正在做一个项目,我对MySQL的优化有一些问题。 我的主表看起来像,大约有1百万行:

+----+------+---------+ 
| id | Name | city_id |  City_id is between (0, 2000).
+----+------+---------+
我将提出许多问题,如:

  • 从city_id=x的表格中选择*
  • 从city_id=x和id=rand()的表格中选择*
  • 它仅显示此数据库上的主要操作


    如果我制作2k个小表,这是一个好的解决方案吗?

    我认为您正在寻找的解决方案是索引。试试这个:

    create index idx_table_city_id on table(city_id, id);
    

    SQL设计用于处理大型表。您希望将数据从一个表拆分为多个表的原因很少。我能想到的唯一好的理由是什么时候这样做是为了满足安全要求。

    我认为您正在寻找的解决方案是索引。试试这个:

    create index idx_table_city_id on table(city_id, id);
    

    SQL设计用于处理大型表。您希望将数据从一个表拆分为多个表的原因很少。我能想到的唯一好的理由是什么时候这样做是为了满足安全要求。

    我认为您正在寻找的解决方案是索引。试试这个:

    create index idx_table_city_id on table(city_id, id);
    

    SQL设计用于处理大型表。您希望将数据从一个表拆分为多个表的原因很少。我能想到的唯一好的理由是什么时候这样做是为了满足安全要求。

    我认为您正在寻找的解决方案是索引。试试这个:

    create index idx_table_city_id on table(city_id, id);
    

    SQL设计用于处理大型表。您希望将数据从一个表拆分为多个表的原因很少。我能想到的唯一好的理由是,什么时候这样做是为了满足安全要求。

    我敢肯定,2000个表几乎从来都不是一个好的解决方案。你为什么提出这个建议?你想做什么?我想抽签两个来自同一个城市的人,但是这个查询每分钟会被使用很多次……我敢肯定2000个表几乎不是一个好的解决方案。你为什么提出这个建议?你想做什么?我想抽签两个来自同一个城市的人,但是这个查询每分钟会被使用很多次……我敢肯定2000个表几乎不是一个好的解决方案。你为什么提出这个建议?你想做什么?我想抽签两个来自同一个城市的人,但是这个查询每分钟会被使用很多次……我敢肯定2000个表几乎不是一个好的解决方案。你为什么提出这个建议?你想做什么?我想抽签两个来自同一个城市的人,但是这个查询每分钟会使用很多次…非常感谢。我想这就是我要找的:)第二个问题。如果我为城市创建外键,MYSQL将自动生成索引?@user3740335。否。外键不创建索引。在create table语句中,
    主键
    索引
    ,和
    唯一
    执行。非常感谢。我想这就是我要找的:)第二个问题。如果我为城市创建外键,MYSQL将自动生成索引?@user3740335。否。外键不创建索引。在create table语句中,
    主键
    索引
    ,和
    唯一
    执行。非常感谢。我想这就是我要找的:)第二个问题。如果我为城市创建外键,MYSQL将自动生成索引?@user3740335。否。外键不创建索引。在create table语句中,
    主键
    索引
    ,和
    唯一
    执行。非常感谢。我想这就是我要找的:)第二个问题。如果我为城市创建外键,MYSQL将自动生成索引?@user3740335。否。外键不创建索引。在create table语句中,
    主键
    索引
    ,和
    唯一
    执行。