zoukankan      html  css  js  c++  java
  • 高性能MySQL 第四章

    MySQL支持的数据类型非常多,选择正确的数据类型对于获得高性能至关重要。

    不管存储哪种类型的数据,下面几个简单的原则都有助于做出更好的选择。

    1、尽量避免过度设计,例如会导致极其复杂查询的schema设计,或者有很多列的表设计(很多的意思是介于有点多和非常多之间)。

    2、使用小而简单的合适数据类型,除非真实数据模型中有确切的需要,否则应该尽可能地避免使用NULL值。

    3、尽量使用相同的数据类型存储相似或相关的值,尤其是要在关联条件中使用的列。注意可变长字符串,其在临时表和排序时可能导致悲观的按最大长度分配内存。

    4、尽量使用整型定义标识列。

    5、避免使用MySQL已经遗弃的特性,例如指定浮点数的精度,或者整数的显示宽度。

    6、小心使用ENUM和SET。虽然它们用起来很方便,但是不要滥用,否则有时候会变成陷阱。最好避免使用BIT。

    范式及其优缺点

    在范式化的数据库中,每个事实数据会出现并且只出现一次

    优点:

    范式化的更新操作通常比反范式话要快

    当数据较好的范式化时,就只有很少或者没有重复数据,所以只需要修改更少的数据

    范式化的表通常更小,可以更好地放在内存里,所以执行操作会更快

    很少有多余的数据意味着检索列表数据时更少需要 DISTINCT 或者 GROUP BY 语句

    缺点:

    表需要关联

    反范式及其优缺点

    在范式化的数据库中,信息是冗余的,可能会存储在多个地方

    优点:

    因为所有的数据都在一张表中,可以很好地避免关联

    可以设计有效的索引

    缺点:

    表格内的冗余较多,删除数据时候会造成表有些有用的信息丢失

    范式是好的,但是反范式(大多数情况下意味着重复数据)有时也是必需的,并且能带来好处。

    最后,ALTER TABLE是让人痛苦的操作,因为在大部分情况下,它都会锁表并且重建整张表

  • 相关阅读:
    java 基本数据类型
    public 类、default 类、内部类、匿名内部类
    使用jar命令打jar/war包、创建可执行jar包、运行jar包、及批处理脚本编写
    jdk下载及安装
    数据库常用查询
    数据库锁的几种类型
    ORACLE表批量迁移表空间
    如何区分Oracle的数据库,实例,服务名,SID
    ORACLE下如何获得全部的索引创建语句
    oracle 内存分配和调优 总结
  • 原文地址:https://www.cnblogs.com/stone94/p/12318767.html
Copyright © 2011-2022 走看看