>>与软件开发有关的知识:操作系统,数据库,网络通信等 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 24110 个阅读者 刷新本主题
 * 贴子主题:  数据库建立索引的原则 回复文章 点赞(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开发-->开发JavaMail Web应用
  JSP与Hibernate开发-->数据库事务的并发问题的解决方案
  Java网络编程-->基于UDP的数据报和套接字
  精通Spring-->
  Vue3开发-->组合(Composition)API
  OSI七层模型与层上协议
  秒懂 QPS、TPS、PV、UV、GMV、IP、RPS!
  Mysql--所有版本安装以及完全卸载
  MySQL——mmm(Master-Master replication managerfor Mysql)...
  作为一个程序员,CPU的这些硬核知识你必须会!
  8种最坑的SQL错误用法,第一个就很坑?
  MySQL 导入数据
  从MySQL数据库中导出数据
  SQL统计数据:COUNT() 函数
  SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数
  SQL PRIMARY KEY 约束
  比较XML的子元素和属性
  电脑启动不起来,提示Reboot and select proper boot device ...
  MySQL的实现定时执行任务的存储过程
  开发好几年,你真的懂MQ嘛(RabbitMQ为例)?看完别说难搞哦
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


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