作者jojobill (..)
看板Database
标题Re: [SQL ] mysql explain 一个 query的效能问题
时间Tue Jul 26 00:27:12 2011
※ 引述《carlcarl (carl)》之铭言:
: 我有个table 是记课堂测验的回答情况
: 主要的栏位为 课程编号 测验编号 题目编号 学生 和其他资料
: 现在目前是用 (课程编号 测验编号 题目编号 学生)当作primary key
A B C D
: 他是拿 课程编号 测验编号 学生 当作条件抓资料
A B D
你遇到的是所谓ABC法则的问题,因为你的query是用到ABD,所以你的PK只会用到AB
当你加了一个ABD的index的时候,完整的配合到你的query所以效益比较高
: 1.
: 但是我有个疑问是 key_len不是越小越准吗?
: 那越准不是应该越好吗???
: 有点不懂这个判断的依据
这个很简单,这个栏位是显示你的index使用的资料长度,因为他从8-->12
所以我猜测 课程编号 测验编号 学生 都是int。
所以说你新的index是配合到你的三个栏位的where
: 2.
: 如果索引的大小比data的大小还大是不是很奇怪啊囧
: 还是我应该要把primary key给删掉呢?
其实不会太奇怪,在实务上真的会发生
在MySQL 中,PK越单纯越好,就是说用1个int当PK其实最单纯。
如果你的资料量不大的话,其实用PK+auto_increment 其实单纯又好用
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.33.16.211
1F:推 carlcarl:谢谢回答!! 07/26 04:24