zoukankan      html  css  js  c++  java
  • 数据库优化小技巧总结

    对于数据库优化:

    数据库优化的目标无非是避免磁盘I/O瓶颈、减少CPU利用率和减少资源竞争
    基于第三范式的数据库表设计具有很多优点:
    一是消除了冗余数据,节省了磁盘存储空间;
    二是有良好的数据完整性限制,即基于主外键的参照完整限制和基于主键的实体完整性限制,这使得数据容易维护,也容易移植和更新;
    三是数据的可逆性好,在做连接(Join)查询或者合并表时不遗漏、也不重复;
    四是因消除了冗余数据(冗余列),在查询(Select)时每个数据页存的数据行就多,这样就有效地减少了逻辑I/O,
    五是对大多数事务(Transaction)而言,运行性能好;
    六是物理设计(Physical Design)的机动性较大,能满足日益增长的用户需求。

    所有常用于查询中的Where子句的列
    和所有用于排序的列创建索引,可以避免整表扫描或访问,在不改变表的物理结构的情况下,
    直接访问特定的数据列,这样减少数据存取时间;
    利用索引可以优化
    或排除耗时的分类*作;把数据分散到不同的页面上,就分散了插入的数据;主键自动建立了唯一索引
    ,因此唯一索引也能确保数据的唯一性(即实体完整性);索引码越小,定位就越直接;新建的索引效能最好,
    因此定期更新索引非常必要。

    一个表只能有一个聚族索引,可有多个非聚族索引。
    使用聚族索引查询数据要比使用非聚族索引快。
    ① 聚族索引(Clustered Index):聚族索引的数据页按物理有序储存,占用空间小。
       选择策略是,被用于Where子句的列:包括范围查询、模糊查询或高度重复的列(连续磁盘扫描);
    被用于连接Join*作的列;
    被用于Order by和Group by子句的列。聚族索引不利于插入*作,另外没有必要用主键建聚族索引。
    ② 非聚族索引(Nonclustered Index):与聚族索引相比,占用空间大,而且效率低。
        选择策略是,被用于Where子句的列:
    包括范围查询、模糊查询(在没有聚族索引时)、主键或外键列、点(指针类)或小范围(返回的结果域小于整表数据的20%)查询;
    被用于连接Join*作的列、主键列(范围查询);被用于Order by和Group by子句的列;需要被覆盖的列。

    防范sql注入的方法无非有以下几种:

      1.使用类型安全的SQL参数
      2.使用参数化输入存储过程
      3.使用参数集合与动态SQL
      4.输入滤波
      5.过滤LIKE条款的特殊字符

  • 相关阅读:
    Golang进阶实战之IO操作
    动态获取输入框光标在页面中的位置! || 动态添加 style标签 || 获取元素样式 || 获取元素在页面中的位置
    v-select插件
    各种创建数组的方法
    百度UEditor编辑器
    vue-router 各种守卫以及流程梳理
    Snipaste 一款好用的 windows截图工具
    ant-design-vue
    罕见的css样式
    vue图片点击放大预览v-viewer
  • 原文地址:https://www.cnblogs.com/zuimengaitianya/p/4986304.html
Copyright © 2011-2022 走看看