gpt4 book ai didi

mysql - 多对多索引问题,mysql

转载 作者:行者123 更新时间:2023-11-29 18:26:33 25 4
gpt4 key购买 nike

我有一个多对多表,这将有数百万行。让我用一个例子来描述我的困惑。

示例:

表:car_dealer_rel

选择:1

columns: car_id: int unsigned, dealer_id: int unsigned
index on: car_id, dealer_id

car_id|dealer_id
-------|---------
1 | 1
1 | 2
....
  • sub-opt:1:在这里我可以在两列上都有一个索引。
  • sub-opt:2:2 列上的一个组合索引。
<小时/>

选择2:

单列表格

col: car_id_dealer_id: varchar:21
index on: PKI on this single column.

这里的想法是将值设置为:car_id.dealer_id 并以 %.xxx 和/或 xxx.% 进行搜索

car_id_dealer_id
----------------
1.1
1.2
1.15
2.10
...
...

在数百万条记录之后,速度会更快:

  1. 读取自
  2. 添加/更新/删除。

我是 MySQL 新手,感谢所有帮助。

最佳答案

与第一个

car_id|dealer_id
-------|---------
1 | 1
1 | 2

您可以轻松地为双方创建复合索引

create index  ind1 on  car_dealer_rel (car_id,dealer_id ); 

create index ind2 on car_dealer_rel (dealer_id, car_id );

工作速度非常快

您可以轻松地在这两种意义上进行过滤

 where car_id =  your_value  

where dealer_id = another_value 

或同时使用

对于第二个,你不能轻易做到这一点(你需要频繁的字符串操作,这不允许你使用索引),并且在某些情况下你不能使用 sql

对于更新、插入和删除,性能几乎保持不变

关于mysql - 多对多索引问题,mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46144000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com