欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

在php中做mysql数据表时的疑惑

程序员文章站 2024-01-30 18:31:07
...
建表时都要建索引,教科书上说这样是为了快,好了,即然快那我把所有字段都搞成索引不就行了
还有一个疑问:索引是查询表时,是不是等同于ID相等的条件呢,如果不等同,那有什么快的条件呢,搞不明白


回复讨论(解决方案)

1000 条数据
如果是顺序查找,最坏的情况是查找 1000 次(恰好要找的在最后一条)
如果对其排序后用二分法查找,最坏的情况也只需查找 10 次(2 的 10 次方为 1024)
显然后者要优于前者。这就是索引的力量

你已经注意到了,二分法查找是需要对数据排序的,而排序是需要时间的
虽然索引文件记录下了排序的结果,但一旦数据发生了变化(插入、修改、删除)就必须重新建立索引文件
所以如果每个字段都有索引的话,这个开销是可想而知的

因此,索引会加快查询的速度,减慢插入、修改、删除的速度
你需要根据具体情况来寻找平衡点

1000 条数据
如果是顺序查找,最坏的情况是查找 1000 次(恰好要找的在最后一条)
如果对其排序后用二分法查找,最坏的情况也只需查找 10 次(2 的 10 次方为 1024)
显然后者要优于前者。这就是索引的力量

你已经注意到了,二分法查找是需要对数据排序的,而排序是需要时间的
虽然索引文件记录下了排序的结果,但一旦数据发生了变化(插入、修改、删除)就必须重新建立索引文件
所以如果每个字段都有索引的话,这个开销是可想而知的

因此,索引会加快查询的速度,减慢插入、修改、删除的速度
你需要根据具体情况来寻找平衡点


把象都快抽的没边了,能不能通俗一点

索引也需要占空间 每一次记录变更都要对索引做修改 全部字段是索引 代价太大
等同于ID 我的理解你说的应该是主键 主键也是一个索引 如果ID不是主键 也是不快的
google 索引下吧

索引也需要占空间 每一次记录变更都要对索引做修改 全部字段是索引 代价太大
等同于ID 我的理解你说的应该是主键 主键也是一个索引 如果ID不是主键 也是不快的
google 索引下吧


一会装一个虚拟机,再用vpn翻出去google一下吧,哎,没有google 的日子是难受哈