>>与软件开发有关的知识:操作系统,数据库,网络通信等 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 18781 个阅读者 刷新本主题
 * 贴子主题:  数据库建立索引的原则 回复文章 点赞(0)  收藏  
作者:mary    发表时间:2020-06-16 08:58:01     消息  查看  搜索  好友  邮件  复制  引用

      数据库建立索引的原则

1,确定针对该表的操作是大量的查询操作还是大量的增删改操作。

     2,尝试建立索引来帮助特定的查询。检查自己的sql语句,为那些频繁在where子句中出现的字段建立索引。

     3,尝试建立复合索引来进一步提高系统性能。修改复合索引将消耗更长时间,同时,复合索引也占磁盘空间。

     4,对于小型的表,建立索引可能会影响性能

     5,应该避免对具有较少值的字段进行索引。

     6,避免选择大型数据类型的列作为索引。

     索引建立的原则

     索引查询是数据库中重要的记录查询方法,要不要进入索引以及在那些字段上建立索引都要和实际数据库系统的查询要求结合来考虑,下面给出实际中的一些通用的原则:
  1.   在经常用作过滤器的字段上建立索引;
  2.   在SQL语句中经常进行GROUP BY、ORDER BY的字段上建立索引;
  3.   在不同值较少的字段上不必要建立索引,如性别字段;
  4.   对于经常存取的列避免建立索引;
  5.   用于联接的列(主健/外健)上建立索引;
  6.   在经常存取的多个列上建立复合索引,但要注意复合索引的建立顺序要按照使用的频度来确定;
  7.   缺省情况下建立的是非簇集索引,但在以下情况下最好考虑簇集索引,如:含有有限数目(不是很少)唯一的列;进行大范围的查询;充分的利用索引可以减少表扫描I/0的次数,有效的避免对整表的搜索。当然合理的索引要建立在对各种查询的分析和预测中,也取决于DBA的所设计的数据库结构。
----------------------------
原文链接:https://www.jianshu.com/p/9c8e2bb89d07
作者: 会飞的鱼

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2020-06-18 11:22:59 重新编辑]
  Java面向对象编程-->输入与输出(下)
  JavaWeb开发-->Web运作原理(Ⅱ)
  JSP与Hibernate开发-->域对象在持久化层的四种状态
  Java网络编程-->安全网络通信
  精通Spring-->Vue Router路由管理器
  Vue3开发-->通过Axios访问服务器
  关于Mongodb的全面总结
  如何成为写SQL高手
  神奇的 SQL 之 联表细节 → MySQL JOIN 的执行过程
  mysql分区(partition)
  Mysql--所有版本安装以及完全卸载
  MySQL 导入数据
  MySQL 连接
  MySQL 安装
  SQL AVG() 函数的用法
  Service Mesh 落地负责人亲述:蚂蚁金服双十一四大考题
  从十年运维看“云”维趋势
  存储与虚拟主机管理
  一次给朋友转账引发我对分布式事务的思考
  TCP三次握手和四次挥手以及11种状态
  MySQL日期函数与日期转换格式化函数大全
  更多...
 IPIP: 已设置保密
树形列表:   
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。