- mysql的整体架构是怎样的?
- 一条update语句是如何执行的?
- 谈谈什么是redo log? 环
- 谈谈什么是 binlog? 有几种格式? row statement mixed
- 谈谈什么是两阶段提交? redo log 和 binlog
- redo log 为什么这么设计,有什么优势? sql顺序io
- 什么是change buffer
- 常见的存储引擎有哪些?
- InnoDB VS MyISAM
- INT(11)中的11的意义是什么?
- double(5,3) 5和3的意义分别是什么? 11.234
- char vs varchar
- datetime vs timestamp? 8字节 4字节
- 什么是水平切分? 什么是垂直拆分?
- mysql主从复制的原理?
- 如何实现读写分离?
- 如何处理MySQL主从同步延时问题?
- 常见分库分表的策略有哪些?
- 分库分表分别解决哪些问题?
- 系统如何动态切换到分库分表上?
- 如何设计可以动态扩容缩容的分库分表方案?
- 分库分表场景下如何处理自增id
- 数据库三范式
- 什么是MDL? DDL? DCL?
- sql执行顺序? 一条sql执行的顺序。orderby groupby having等等?
- 如何创建数据库? create database name
- 如何选择数据库? use
- 如何创建表? create
- 如何添加一列? alter table name add col char(10);
- 如何删除一列? alter table T_name drop column col;
- 如何删除一张表? drop table t_name
- mysql中有哪些自带的函数? avg min max count sum
- 字符串函数都有哪些? left right ltrim rtrim length lower upper...
- count(*) count(1) count(column) 区别?
- mysql有哪些连接操作?
- 如何创建账户 CREATE USER myuser IDENTIFIED BY 'mypassword';
- 如何修改账户名 RENAME USER myuser TO newuser;
- 如何删除账户 DROP USER myuser;
- 如何查看权限 SHOW GRANTS FOR myuser;
- 如何授予权限 GRANT SELECT, INSERT ON mydatabase.* TO myuser;
- 如何删除权限? REVOKE SELECT, INSERT ON mydatabase.* FROM myuser;
- 如何更改密码? SET PASSWROD FOR myuser = Password('new_password');
- 什么是索引? 为什么需要索引?
- mysql索引的数据结构常见的有哪些?
- 为什么没有使用红黑树作为索引底层的数据结构?
- hash表作为索引结构的优缺点?
- 分析Btree和B+tree,B+tree有哪些优点?
- b+tree添加数据的过程?
- 什么是磁盘预读特性? 空间局部性原理
- 什么是全文索引? 倒排索引
- 谈谈索引优化?
- 什么是前缀索引?
- 什么是最左前缀原则?
- 什么是覆盖索引?
- 什么是回表?
- 什么是索引下推 ICP ?
- 如何查看执行计划? explain
- 为什么唯一索引不适合使用change buffer?
- 为什么建议自增的整形主键?
- 如果没有创建主键会怎样?
- 什么叫做聚集索引和非聚集索引?
- 什么叫做二级索引?
- 讲一下order by的底层逻辑是什么? sort buffer
- 什么情况下会产生临时表?
- 什么是行锁?什么是表锁?
- 什么是元数据锁 mdl?
- 什么是全局锁?
- 什么是死锁? 如何解决死锁问题?
- 什么是意向锁?
- 什么是事务?
- 事务有什么特性?
- mysql的事务隔离级别有哪些? 默认的事务隔离界别是什么?
- 不同的事务级别下分别有哪些问题?
- 如何修改事务和查看事务隔离级别?
- mysql中如何开启一个事务?
- 什么是脏读?
- 什么是可重复读?
- 什么是幻读?
- 什么是当前读? 什么是快照读?
- 什么是一致性试图?
- 一致性视图在什么时候创建的?
- 一致性试图的可见性原则是什么?
- 什么是mvcc? 为什么需要mvcc? 优化一般读写并发度
- RR级别下如何解决幻读问题?
- 什么是间隙锁?
- 什么是临键锁?