数据库-2019-01-13

1、DBMS 数据库管理系统
2、DB 数据库
3、SQL 结构化查询语言
4、数据库为什么不推荐使用外键约束?
其实这个话题是老生常谈,很多人在工作中也不会使用外键,包括阿里的Java规范中也有一条,强制不得使用外键与级联,一切外键概念必须在应用层解决
比较笼统的原因是因为,每次做delete和update操作都必须考虑外键约束,会导致开发的时候很痛苦,测试数据极为不方便,外键约束的存在会保证表间数据的关系始终完整
数据更新之前需要在外键指定的表中查询,提高了数据更新的花费
数据库迁移的时候不方便
数据扩展的时候数据库是用瓶颈的,加机器还是不能提高性能
外键更容易再高并发的时候引起死锁
请不起DBA,将操作数据库操作交个业务层来处理
5、整型
    tinyint    1字节    -128~127
    smallint    2字节    -32768~32767
    mediumint    3字节    -8388608~8388607
    int    4字节    范围-2147483648~2147483647
    bigint    8字节    +-9.22*10的18次方
6、浮点型
    MySQL数据类型    所占字节    值范围
    float(m, d)    4字节    单精度浮点型,m总个数,d小数位
    double(m, d)    8字节    双精度浮点型,m总个数,d小数位
    decimal(m, d)        decimal是存储为字符串的浮点数
7、unsigned(无符号)
    主要用于整型和浮点类型,使用无符号数,即没有前面的- 存储的位数更长。tinyint整型的取值区间为 -128-127 而是用无符号数后可存储0-255 个长度
8、表引擎
    MyISAM 常用 读取效率很高的引擎 不会支持事务、表锁、加锁的时候会锁定整个表,支持全文索引,操作速度快。常用与读取多的业务。mysql只缓存其索引文件,数据文件的缓存由操作系统自身完成
    InnoDB 常用 写入支持事务
    支持事务,主要面向在线事务处理OLTP方面的应用。行锁、支持外键、即默认情况下读取操作不加锁。
9、锁
    行锁:写入、更新操作的时候将这一行锁起来,不让其他人再操作了。
    表锁:写入、更新操作的时候,将表锁起来不让其他人再操作了。
    事务:同时操作多个数据,若其中的一个数据操作失败,可回滚到操作之前。常用于银行、电商、金融系统中。

10、索引
    普通索引:最基本的索引,他没有任何限制
    唯一索引:某一行启用了唯一索引则不准这一列的行数据中有重复的值。针对这一列的每一行数据都要求是唯一的。
    主键索引:他是一种特殊的唯一索引,不允许有空值,一般是在建表的时候同时创建主键索引,常用于用户ID,类似于书中的页码
    全文索引:对于需要全局搜索的数据,进行全文索引

11、删除数据的是一定要where limit 备份

https://www.kancloud.cn/phpxy/mysql_cookbook/146038

猜你喜欢

转载自blog.csdn.net/u014230945/article/details/86422522