B树在提高了磁盘IO性能的同时并没有解决元素遍历的效率低下的问题, 而B+树只需要遍历叶子节点就可以解决对全部关键字信息的扫描, 所以对于数据库中频繁使用的range query,B+树有着更高的性能。
B+树的内部结点并没有指向关键字具体信息的指针。因此其内部结点相对B树更小。 如果把所有同一内部结点的关键字存放在同一盘块中,那么盘块所能容纳的关键字数量也越多 一次性读入内存中的需要查找的关键字也就越多。相对来说I/O读写次数也就降低了。
由于内部结点并不是最终指向文件内容的结点,而只是叶子结点中关键字的索引。 所以任何关键字的查找必须走一条从根结点到叶子结点的路。 所有关键字查询的路径长度相同,导致每一个数据的查询效率相当。
select * from Member limit 10000,100
select * from Member where MemberID >= (select MemberID fro m Member limit 100000,1) limit 100
select * from orders_history where type=2 and id between 1000 000 and 1000100 limit 100;
一般是并发量大或者数据量大
TDDL、mycat、sharding-jdbc
A表示需要分割的表 原来的代码对A表进行增删改的地方,都加上对新库的增删改代码 新库同时导老库的数据 同时根据"修改时间"字段判断是否写入 循环几次,基本能保证新老一致
1 + 41 + 10 + 12 不用+时间戳+工作机器id+同一毫秒内的数字
主从架构,一个主库挂上一个或者多个从库,通过mysql的同步功能
(1). varchar与char的区别 (2). varchar(50)中50的涵义 (3). int(20)中20的涵义 (4). mysql为什么这么设计 事务
(1). 有多少种日志; (2). 事物的4种隔离级别 (3).事务是如何通过日志来实现的,说得越深入越好。
1). binlog的日志格式的种类和分别 (2). 适用场景; 结合第一个问题,每一种日志格式在复制中的优劣。
1. 查看日志 2. 查看当前进程 3. 没有经验的,可以不问; (2). 有经验的,问他们的处理思路。
1. 语句类型 2. 索引 3. 行数
(1). 备份计划; (2). 备份恢复时间; (3). xtrabackup实现原理
阿里的during,有提供看板
utf8-mb4
1. 注释 2. 字典表
join会有性能消耗 不拆
for update,根据主键、唯一键
开放性问题:据说是腾讯的 一个6亿的表a,一个3亿的表b,通过外间tid关联,你如何最快的查询出满足条件的第50000到第50200中的这200条数据记录。 2. SQL语言包括哪几部分?每部分都有哪些操作关键字? 3. 完整性约束包括哪些? 4. 什么是事务?及其特性? 5. 什么是锁? 6. 什么叫视图?游标是什么? 7. 什么是存储过程?用什么来调用? 8. 索引的作用?和它的优点缺点是什么? 9. 如何通俗地理解三个范式? 10. 什么是基本表?什么是视图? 11. 试述视图的优点? 12. NULL是什么意思 13. 主键、外键和索引的区别? 14. 你可以用什么来确保表格里的字段只接受特定范围里的值? 15. 说说对SQL语句优化有哪些方法?(选择几条) 16. SQL语句中‘相关子查询’与‘非相关子查询’有什么区别? 17. char和varchar的区别? 18. Mysql 的存储引擎,myisam和innodb的区别。 19. 数据表类型有哪些 20. MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化? 21. 对于大流量的网站,您采用什么样的方法来解决各页面访问量统计问题? 22. 如何进行SQL优化?(关于后边的解释同学们可以进行理解,到时根据自己的理解把大体意思说出来即可) 23,为表中得字段选择合适得数据类型(物理设计) 24:存储时期