在php中做mysql数据表时的疑惑
还有一个疑问:索引是查询表时,是不是等同于ID相等的条件呢,如果不等同,那有什么快的条件呢,搞不明白
回复讨论(解决方案)
1000 条数据
如果是顺序查找,最坏的情况是查找 1000 次(恰好要找的在最后一条)
如果对其排序后用二分法查找,最坏的情况也只需查找 10 次(2 的 10 次方为 1024)
显然后者要优于前者。这就是索引的力量
你已经注意到了,二分法查找是需要对数据排序的,而排序是需要时间的
虽然索引文件记录下了排序的结果,但一旦数据发生了变化(插入、修改、删除)就必须重新建立索引文件
所以如果每个字段都有索引的话,这个开销是可想而知的
因此,索引会加快查询的速度,减慢插入、修改、删除的速度
你需要根据具体情况来寻找平衡点
1000 条数据
如果是顺序查找,最坏的情况是查找 1000 次(恰好要找的在最后一条)
如果对其排序后用二分法查找,最坏的情况也只需查找 10 次(2 的 10 次方为 1024)
显然后者要优于前者。这就是索引的力量
你已经注意到了,二分法查找是需要对数据排序的,而排序是需要时间的
虽然索引文件记录下了排序的结果,但一旦数据发生了变化(插入、修改、删除)就必须重新建立索引文件
所以如果每个字段都有索引的话,这个开销是可想而知的
因此,索引会加快查询的速度,减慢插入、修改、删除的速度
你需要根据具体情况来寻找平衡点
把象都快抽的没边了,能不能通俗一点
索引也需要占空间 每一次记录变更都要对索引做修改 全部字段是索引 代价太大
等同于ID 我的理解你说的应该是主键 主键也是一个索引 如果ID不是主键 也是不快的
google 索引下吧
索引也需要占空间 每一次记录变更都要对索引做修改 全部字段是索引 代价太大
等同于ID 我的理解你说的应该是主键 主键也是一个索引 如果ID不是主键 也是不快的
google 索引下吧
一会装一个虚拟机,再用vpn翻出去google一下吧,哎,没有google 的日子是难受哈
推荐阅读
-
php中批量删除Mysql中相同前缀的数据表的代码
-
mysql中left join设置条件在on与where时的用法区别分析
-
在MySQL数据库中执行SQL语句时的几个注意点
-
在cluster中的SQL节点上安装php-mysql会有冲突提示
-
在Drupal中设置分页的区块视图时需要分外小心_PHP教程
-
在php中做数据表必须有外键吗
-
在php中做mysql数据表时的疑惑
-
phpStudey2010中进入phpMyAdmin出现"无法在发生异常时创建会话,请检查PHP"的解决办法
-
php-mysql 问题笔记一——在命令行中可以执行的sql语句,无法从php页面页面执行!,php-mysqlsql_PHP教程
-
在php中取得mysql列信息的两种方法_PHP教程