我有三个表,Term, Category, Category_Term, 多对多关系,很简单,Term 和 Category 只有 ID and Name 两个字段,Category_Term 是 intersection table, 存 储对应 Term and Category ID 的外部键。 使用 Load Data Local Infile,前两个表的 load 速度还比较快,5 百万的记录也就 几分钟导进去了。但是 Category_Term 出奇的慢,3 三百万的记录,几个小时才完。 数据库为 MariaDB (MySql), Linux. 难道向库中导数据的速度,跟表的结构有关。即使如此,也不应该这么慢。这可能是什 么原因?
d*t
4 楼
应该去ER看看吧 精神状态不好如果再加上呕吐就不能掉以轻心
d*e
5 楼
foreign key要建立index. 你去check以下。
【在 l******0 的大作中提到】 : 我有三个表,Term, Category, Category_Term, 多对多关系,很简单,Term 和 : Category 只有 ID and Name 两个字段,Category_Term 是 intersection table, 存 : 储对应 Term and Category ID 的外部键。 : 使用 Load Data Local Infile,前两个表的 load 速度还比较快,5 百万的记录也就 : 几分钟导进去了。但是 Category_Term 出奇的慢,3 三百万的记录,几个小时才完。 : 数据库为 MariaDB (MySql), Linux. : 难道向库中导数据的速度,跟表的结构有关。即使如此,也不应该这么慢。这可能是什 : 么原因?
没有人知道为什么慢 如果说科学方法的话 1. 装一个mysql monitor,mysql自己就有一个分析performance的命令行工具。 2 自己建立一套表单,往里面放东西,看和1在工具里不同在哪里 如果你不画er diagram,you will get LOST given several tables.
【在 l******0 的大作中提到】 : 我有三个表,Term, Category, Category_Term, 多对多关系,很简单,Term 和 : Category 只有 ID and Name 两个字段,Category_Term 是 intersection table, 存 : 储对应 Term and Category ID 的外部键。 : 使用 Load Data Local Infile,前两个表的 load 速度还比较快,5 百万的记录也就 : 几分钟导进去了。但是 Category_Term 出奇的慢,3 三百万的记录,几个小时才完。 : 数据库为 MariaDB (MySql), Linux. : 难道向库中导数据的速度,跟表的结构有关。即使如此,也不应该这么慢。这可能是什 : 么原因?
【在 a*******s 的大作中提到】 : 1.create table without index, : 2.loading : 3.add index
q*m
16 楼
吓着了有什么好办法解决?
l*0
17 楼
关键另两个表也都有 ID, Name 的索引,但速度很正常,同样的数据量,几分钟的事 。这个 join table, 则需要几个小时。That is what I am curious about, and maybe something I am doing wrong.
【在 h**********c 的大作中提到】 : 没有人知道为什么慢 : 如果说科学方法的话 : 1. 装一个mysql monitor,mysql自己就有一个分析performance的命令行工具。 : 2 自己建立一套表单,往里面放东西,看和1在工具里不同在哪里 : 如果你不画er diagram,you will get LOST given several tables.
Remove primary key/key/foreign key from mapping table and test the performance, make sure no issue in storage. Then add those keys back one by one to identify the issue.