• 高性能MySQL 第四章


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

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

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

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

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

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

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

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

    范式及其优缺点

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

    优点:

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

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

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

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

    缺点:

    表需要关联

    反范式及其优缺点

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

    优点:

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

    可以设计有效的索引

    缺点:

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

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

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

  • 相关阅读:
    flex 内嵌js文件
    LOADRUNNER 录制脚本的问题
    loadrunner windows 2003 添加性能计数器的问题
    其他的网站能上,微软网站不能上是由病毒引起的
    sql express 静默安装的方方法
    javascript 附件事件时带参数的处理方法
    java 面试题 转载
    windows 域共享的问题
    winform listbox 没有listitem的问题
    对象相交检测示例
  • 原文地址:https://www.cnblogs.com/stone94/p/12318767.html
Copyright © 2020-2023  润新知