开发者社区 > 数据库 > 正文

SQL开发中常见问题有哪些?

SQL开发中常见问题有哪些?

展开
收起
vncamyi27xznk 2021-12-25 17:36:50 1722 0
1 条回答
写回答
取消 提交回答
    1. Where 后面的列顺序是不是要符合最左原则? Where a=1 and b=2 等价于 Where b=2 and a=1 最左原则指的是索引顺序,不是谓词顺序,以上两个条件都匹配( a,b) 复合索引。
    2. Join 的顺序是否指定左边为驱动表? Inner Join场景下,在执行计划中按统计信息的预估自动选中驱动表,Left Join ,Right Join 时左右写的顺序才有显式意义。 3.业务上有随机返回的需求,能否用order by rand() 一般不建议,如果结果集非常小,勉强可用,但结果集大时由于随机数排序,会产生Sort操作甚至溢出到磁盘,有很大性能损耗,此类需求可以考虑伪随机算法。 4.Delete数据之后,为什么磁盘空间占用反而大了? Delete数据并不能清理数据文件空间,反而会导致Undo,Binlog文件的增长,使用Optimize收缩。 5.Binlog是否一定要Row格式? 在主从场景下,Binlog使用Row格式是为了保证主从数据一致性。 单机场景下,Binlog做为增长数据备份使用,同时也包括一些语句级数据恢复的功能。 6.死锁、阻塞的区别 通常说的阻塞,主要是由于锁获取不到,产生的请求被阻塞,一般需要手动解锁(Kill或等待)。死锁不等于阻塞,虽然死锁中阻塞是必现的,但是会自动回滚事务解锁,不用手动处理,但需要业务判断语句逻辑。 以上两种情况都是由于业务侧逻辑出现,并非内核原因。 7.做DDL时是否会锁表 所有的DDL都需要锁表,只是操作顺序和操作获取时间的问题。

    答复内容摘自《深入MySQL实战》,这本电子书收录开发者藏经阁 下载连接:https://developer.aliyun.com/topic/download?id=1167

    2021-12-25 18:30:21
    赞同 展开评论 打赏
问答分类:
SQL
问答标签:
问答地址:

数据库领域前沿技术分享与交流

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载