一、为什么使用数据索引能提高效率
二、B+树索引和哈希索引的区别
B+树是一个平衡的多叉树,从根节点到每个叶子节点的高度差值不超过1,而且同层级的节点间有指针相互链接,是有序的,如下图:
哈希索引就是采用一定的哈希算法,把键值换算成新的哈希值,检索时不需要类似B+树那样从根节点到叶子节点逐级查找,只需一次哈希算法即可,是无序的,如下图所示:
三、哈希索引的优势:
等值查询,哈希索引具有绝对优势(前提是:没有大量重复键值,如果大量重复键值时,哈希索引的效率很低,因为存在所谓的哈希碰撞问题。
四、哈希索引不适用的场景:
五、什么是表分区?
表分区,是指根据一定规则,将数据库中的一张表分解成多个更小的,容易管理的部分。从逻辑上看,只有一张表,但是底层却是由多个物理分区组成
六、表分区与分表的区别?
分表:指的是通过一定规则, 将一张表分解成多 张不同的表。比如将用户订单记录根据时间成多个表。
分表与分区的区别在于:分区从逻辑上来讲只有一张表 ,而分表则是将一张表分解成多张表。
七、表分区有什么好处?
八、在MVCC并发控制中,读操作可以分成两类:
快照读(snapshot read):读取的是记录的可见版本(有可能是历史版本),不用加锁(共享读锁s锁也不加,所以不会阻塞其他事务的写)
当前读(currentread):读取的是记录的最新版本,并且,当前读返回的记录,都会加上锁,保证其他事务不会再并发修改这条记录
九、行级锁定的优点:
十、行级锁定的缺点:
比页级或表级锁定占用更多的内存。当在表的大部分中使用时,比页级或表级锁定速度慢,因为你必须获取更多的锁。 如果你在大部分数据上经常进行GROUP BY操作或者必须经常扫描整个表,比其它锁定明显慢很多。 用高级别锁定,通过支持不同的类型锁定,你也可以很容易地调节应用程序,因为其锁成本小于行级锁定。
十一、MySQL优化
prepared statements获得很多好处,无论是性能问题还是安全问题。
Prepared Statements可以检查一些你绑定好的变量,这样可以保护你的程序不会受到“SQL注入式” 攻击
十二、Key和index的区别
key是数据库的物理结构,它包含两层意义和作用,一是约束(偏 重于约束和规范数据库的结构完整性) ,二是索引(辅助查询 用的)。包括primary key, unique key, foreign key等
index是数据库的物理结构,它只是辅助查询的,它创建时会在另外的表空间(mysql中的InnoDB表空间) 以-个类似目录的结 构存储。索引要分类的话,分为前缀索引、全文本索引等;
十三、Mysql 中MyISAM和InnoDB的区别有哪些?
十四、数据库表创建注意事项
1、字段名及字段配制合理性
2、系统特殊字段处理及建成后建议
3、表结构合理性配置
4、其它建议
原文地址:














发表评论