int(0):整形,宽度0
char(16)定长字符串,宽度16
varchar(16)变长字符串,宽度16
datetime事件日期类型
test字符串类型,存储大文本数据
整数类型:TINYINT,SAMALLINT, MEDIUMINT,INT,BIGINT
实数类型:FLOAT,DOUBLE,DECIMAL
字符串类型:VARCHAR,CHAR,test,blob
日期和事件类型
常见操作
InnoDB表引擎
MyISAM表引擎
其他表引擎
锁粒度
行锁如果没有索引,会变为表锁
InnoDB支持事务处理
存储过程
MySQl触发器
索引类似于书签,现在索引里找到对应的值,然后根据匹配的索引找到对应的数据
主键索引一定是唯一索引,唯一索引不一定是主键索引
主键索引不允许有空值
混合索引是将多个列组合在一起创建索引,可以覆盖多个列
延伸
索引对性能的影响
索引的使用场景
索引的类型
唯一索引和主键索引的区别
MySQL索引的创建原则
MySQL索引注意事项
update A,B set A.c1 = B.c1,A.c2 = B.c2 where A.id = B.id where B.age > 50
update A inner join B on A.id = B.id set A.c1 = B.c1,A.c2 = B.c2 where b.age > 50
关联更新
交叉链接(cross join)
内连接(inner join)不以任何表为主,只找on后面的条件
联合查询(union/union all)把多个结果集合在一起,union签的结果为准,需要注意的是联合查询的列数要相等,相同的记录会合并(union all不会合并重复记录,并且union all效率高于union)
全连接(full join)MySql不支持全连接,可以使用left join 和 union 和 right join 联合使用
嵌套查询(不建议使用)用一条sql语句的结果作为另一条sql语句的条件
记录慢查询日志
使用show profile
set profiling = 1;开启,服务器上执行的所有语句会检测小耗时间,存到临时表里
使用explian(desc)分析单条语句
优化数据访问的方法
优化长难的查询语句
优化特定类型的语句
使用场景
缺点
使用场景
分表方式:水平分割
需要把数据存放在多个介质上
分表方式:垂直分割
可以使数据行变小
分库分表缺点:有些分表基于逻辑算法,扩展性较差,增加开发成本
主从复制工作原理
解决的问题
尽量实用pdo连接数据库,mysql的函数库性能不如pdo,而且未来可能会淘汰
—— 评论区 ——