MYSQL-DDL注意事项

DDL的基础语法及设计工具

数据定义语言:它定义了数据库的结构  和  数据表的结构

在DDL中,我们常用的功能是增删改,分别对应的命令是

CREATE、DROP和ALTER。

需要注意的是,在执行DDL的时候,不需要COMMIT,就可以完成执行任务

   我们将字符集设置为utf8,排序规则为utf8_general_ci,行格式为Dynamic,就可以定义数据表的最后约定了:

ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

  排序规则:

    utf8_unicode_ci和utf8_general_ci对中英文来说没有实质的差别。
    utf8_general_ci: 校对速度快,但准确度稍差。
    utf8_unicode_ci: 准确度高,但校对速度稍慢。
    若数据库中有德语、法语或者俄语需求,需使用utf8_unicode_ci。
    其他情况用utf8_general_ci即可。

  Note:
    ci是 case insensitive, 即 "大小写不敏感", a 和 A 会在字符判断中会被当做一样的。

  格式:

fixed :静态表
    在mysql中, 若一张表里面不存在varchar、text以及其变形、blob以及其变形的字段的话,那么张这个表其实也叫静态表,即该表的row_format是fixed,
    就是说每条记录所占用的字节一样。其优点读取快,缺点浪费额外一部分空间。
dynamic :动态表
    若一张表里面存在varchar、text以及其变形、blob以及其变形的字段的话,那么张这个表其实也叫动态表,即该表的row_format是dynamic,
    就是说每条记录所占用的字节是动态的。其优点节省空间,缺点增加读取的时间开销。
    所以,做搜索查询量大的表一般都以空间来换取时间,设计成静态表。
 

 

排序规则为

  utf8_unicode_ci和utf8_general_ci对中英文来说没有实质的差别。
  utf8_general_ci: 校对速度快,但准确度稍差。
  utf8_unicode_ci: 准确度高,但校对速度稍慢。
  若数据库中有德语、法语或者俄语需求,需使用utf8_unicode_ci。
  其他情况用utf8_general_ci即可。

  Note:
  ci是 case insensitive, 即 "大小写不敏感", a 和 A 会在字符判断中会被当做一样的。

posted @ 2019-07-30 11:51  jason&li  阅读(154)  评论(0)    收藏  举报