美文网首页Mysql系列
MySQL核心技术与最佳实践(1,2章笔记)

MySQL核心技术与最佳实践(1,2章笔记)

作者: 凯睿看世界 | 来源:发表于2019-02-19 16:02 被阅读67次

    电子书PDF:
    链接: https://pan.baidu.com/s/1j42DoIBBjnHZe8N5biubzQ 提取码: 5vgi

    数据建模工具:Erwin , PowerDesigner , Rational Rose, Visio 等

    函数使用_fun后缀,存储过程使用_proc , 视图使用_view 触发器_trig
    索引使用_index,外键约束_fk

    单行注释使用#号,或使用-- 加空格
    多行注释使用/* */

    MySQL在window操作系统中大小写不敏感,但在linux中大小写敏感,
    考虑到在不同的操作系统中移植,需要注意命名规范

    E-R图表示现实世界中具有相同属性的事物集合,它不是某一具体事物,
    而是某一种类别所有事物的统称。

    表的主键有二个特征
    1:主键可以是一个字段,也可以是多个字段组合
    2:主键具有唯一性且不能为取空值NULL

    NULL值表示不确定或不存在,不等于''值,不等于0

    常用数据类型包括:数值类型,字符类型,日期类型
    日期类型分为:日期类型和时间类型

    常用约束有6种:
    1:主键约束 primary key
    2:外键约束(foreign key)
    3: 唯一约束 unique
    4: 默认约束 default
    5: 非空约束 not NULL
    6: 检查约束 check

    InnoDB引擎支持外键约束 MyISAM 不支持外键约束
    一张表中可以有多个唯一约束,并且唯一约束可以为NULL

    在设计数据库时有两个不争的事实:
    数据库中的冗余需要额外的维护,因此应该尽量减少冗余数据。
    经常变化的数据需要额外的维护,因此应该尽量避免数据经常发生变化。

    OLTP:on-line transaction processing 在线事务处理
    OLAP: on-line analytical processing 在线分析处理

    Services.msg 可弹出 “服务”窗口

    net start mysql
    net stop mysql

    mysql -h localhost -P 3306 -u root -proot

    show varibales like 'pid_file' 查看文件保存路径
    字符集设置,已ci, cs及bin结尾的
    ci 表示大小写不敏感 , cs 大小写敏感 , bin 按二进制编码

    show character set
    show variables like 'character%'
    show variables like 'collation%' 查看mysql会话使用的字符序

    Mysql 字符集可以细化到表,甚至每一个字段,没有指定字符集时,字段延用表,
    表延用数据库,数据库延用mysql服务实例
    character_set_server在my.ini中配置

    set names gbk ; 可以临时一次性的设置character_set_client字符集
    alter database choose set gbk;
    show variables like 'datadir'
    show databases;
    show create database database_name;
    use choose;
    drop database database_name;

    Mysql中典型的数据库对象包括
    表,视图,索引,存储过程,函数,触发器
    Mysql存储引擎至少有10种, show engines;
    MyISAM 具有检查和修复表的大多数工具。可以被压缩,最早支持全文索引,不是事务安全,
    不支持外键,如果有大量select,出于性能考虑,MyISAM存储引擎是更好的选择。

    use choose;
    set default_storage_engine = InnoDB
    create table my_table(
    today, datatime,
    name char(20)
    );
    use choose;
    alter table my_table engine=MyISAM;

    window操作系统中,文件名及目录不区分大小写,linux中区分大小写,
    而mysql数据库操作最终转换为操作数据库中目录及文件,因此为在不同操作系统中移植,
    mysql命名操作要规范,包括大小写。

    show tables;
    describe table_name;
    show create table table_name;

    NULL 与整数0以及空字符串''的概念不同,也不相等。

    MyISAM 表备份较简单,只需要备份数据库目录。
    InnoDB 备份较复杂,不仅 要备份数据库目录,还需要复制ibdata1表空间文件,及重做日志文件ib_logfile0 与 ib_logfile1.
    对InnoDB引擎而言,存在表空间,又分为共享表空间和独享表空间。
    show variables like 'innodb_data_file_path'

    全局变量innodb_file_per_table为ON则为独享表空间。默认为OFF
    show variables like 'innodab_fiel_per_table';
    默认情况下独享表空间的文件名为“表名.ibd”

    变量分为系统变量和用户变量,系统变量以“@@”开头
    系统变量又分为,全局,回话,及静态系统变量。静态的在配置文件中配置,或在源码中编译。

    show global variables;
    show session variables;
    数据库备份和恢复
    1: 停机或使用flush tables with read lock将服务器中数据刷新到数据文件
    2:备份数据库文件,
    3:使用unlock tables;行进解锁
    4:恢复数据文件,MyISAM引擎只需要数据目录文件,InnoDB引擎还需要表空间文件,重做日志文件。

    相关文章

      网友评论

        本文标题:MySQL核心技术与最佳实践(1,2章笔记)

        本文链接:https://www.haomeiwen.com/subject/vxrfyqtx.html