随笔分类 - 挑战高薪-MYSQL
mysql mysiam innodb的区别
摘要:1,存储文件 mysiam:数据恢复可以直接拷贝下面三个文件 .frm 文件保存表的结构 .MYD 数据 .myi 索引 innodb:数据恢复必须停掉mysql,然后在恢复 .frm 表结构 共享表空间进行数据与索引存储 表空间文件 共享表空间文件:ibdata1 私有表空间文件:表名.ibd 2
阅读全文
mysql 索引
摘要:索引分析 desc explain 索引类型:唯一索引,普通索引 索引使用: 多个单列索引跟联合索引的区别 聚簇索引与非聚簇索引 1,innodb必须要有一个主键索引(没有主键就用唯一键,没有唯一键就用隐藏id),通过主键索引,可以获取数据(聚簇索引) 普通索引是先用普通索引查找到主键,然后用主键索
阅读全文
and or 混用
摘要:and or 混用 and 优先级 > or 1,SELECT * from managers WHERE `name` = 'admin' OR 1=1 and `password`='admin1111' 相当于 SELECT * from managers WHERE `name` = 'ad
阅读全文
索引优化
摘要:1. 尽量全值匹配 当建立索引后,能再where条件中使用索引列,就尽量使用。例如 alter table staffs add index idx_staffs_nameAgePos(name,age,pos);尽量加上三个列在where里,EXPLAIN SELECT * FROM staffs
阅读全文
left join,right join,inner join,cross join,full join
摘要:left join,right join,inner join,cross join,full join
阅读全文
innoDB事务的实现
摘要:buffer pool,logbuffer,redo log,undo log 1,buffer pool 内存操作,没提交之前,只是修改了内存数据 2,生成redo log日志存入logbuffer内(内存)跟undo log日志 3,提交就执行redo log,并把数据保持到硬盘,回滚执行und
阅读全文
索引
摘要:B+TREE 哈希 普通索引找id,然后通过id主键索引找数据 单列索引,多列索引,唯一索引 根节点,叶子节点,非叶子节点 聚簇索引/主键索引:需要查询的数据就在索引叶子节点内(叶子节点保存的数据是所有数据) 非聚簇索引/普通索引:通过索引找到主键id(叶子节点保存的数据是id),然后在走主键索引找
阅读全文
锁机制
摘要:悲观锁 1,读锁/共享锁 lock table t read 自己:能读,不能写 别人:能读,写等待 2,写锁/排它锁 lock table t write 自己:能读,能写 别人:读等待 解锁:unlock tables select 自动加读锁 update,delete,insert 自动加表
阅读全文
事务
摘要:原子性:事务里的操作要么全部成功,要么全部失败,undo log保证 一致性:是指数据库从一个一致性状态变到另一个一致性状态,比如a扣钱,b加钱,之后达到新的一致 隔离性:一个事务在提交或回滚前,对其他事务不可见 隔离级别: read uncommit: 读未提交,一个事务update之后,还没有c
阅读全文
三大范式
摘要:答:第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解; 第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性; 第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。。 范式化设计优缺点: 优点: 可以尽量得减少数据冗余,
阅读全文