数据库

MYSQL的一些疑惑

2021-01-17  本文已影响0人  随风_d6a2

1.联合索引的结构是什么样的??
例如,现在建立了"name,age,school"的联合索引。

2.表order有一千万条数据,orderNo添加了索引,当前需要执行一下select * from order where orderNo!=‘112’ and customerId = 11; 这样的语句,索引失效,应该如何处理?
不能够先查出select * from order where customerId = 11,再过滤,这样分页会出现重复的情况;

3.这是如何理解:
当查询使用聚簇索引时,在对应的叶子节点,可以获取到整行数据,因此不用再次进行回表查询.

为什么不需要回表查询??
聚簇索引本身就建立在表上面;表行的排列就是按照聚簇索引排列的,非聚簇索引依然要按照聚簇索引去查数据行;

4.数据库执行了语句,COMMIT和未COMMIT,执行的数据是什么状态?
为什么多个事务时,A事务可以读取到了B事务未提交的内容??

5.为什么 无索引行锁升级为表锁?
例如,update order set money = 100 where customerName = ‘小明’;
customerName 是没有索引的,这时会锁着整个表;

这个可以尝试一下;

上一篇下一篇

猜你喜欢

热点阅读