>>与软件开发有关的知识:操作系统,数据库,网络通信等 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 18637 个阅读者 刷新本主题
 * 贴子主题:  数据库建立索引的原则 回复文章 点赞(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面向对象编程-->Java语言中的修饰符
  JavaWeb开发-->JSP技术详解(Ⅱ)
  JSP与Hibernate开发-->数据库事务的并发问题的解决方案
  Java网络编程-->基于UDP的数据报和套接字
  精通Spring-->通过Axios访问服务器
  Vue3开发-->CSS过渡和动画
  Https的1.0、2.0协议及长短链接区别
  如何成为写SQL高手
  MySQL——mmm(Master-Master replication managerfor Mysql)...
  从MySQL数据库中导出数据
  MySQL 序列使用
  MySQL 正则表达式
  SQL ROUND() 函数
  SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数
  SQL AUTO INCREMENT 字段
  海量日志分析与智能运维
  CentOS7.5使用mysql_multi方式安装MySQL5.7.28多实例
  我心中的MySQL DBA
  Mysql备份与恢复
  MySQL核心技术点——史上最全的select加锁分析
  Java 操作系统篇
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


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