38、如何在Excel中使用SQL语言?

在进阶篇中,我们对设计范式、索引、页结构、事务以及查询优化器的原理进行了学习,了解这些可以让我们更好地使用SQL来操作RDBMS。实际上SQL的影响力远不止于此,在数据的世界里,SQL更像是一门通用的语言,虽然每种工具都会有一些自己的“方言”,但是掌...

SQL必知必会

37、SQL注入

我们之前已经讲解了SQL的使用及优化,正常的SQL调用可以帮我们从数据库中获取想要的数据,然而我们构建的Web应用是个应用程序,本身也可能存在安全漏洞,如果不加以注意,就会出现Web安全的隐患,比如通过非正常的方式注入SQL。 在过去的几年中,我们也...

SQL必知必会

36、数据库没有备份,没有使用Binlog的情况下,如何恢复数据?

我们上节课讲解了MySQL的复制技术,通过主从同步可以实现读写分离,热备份,让服务器更加高可用。MySQL的复制主要是通过Binlog来完成的,Binlog记录了数据库更新的事件,从库I/O线程会向主库发送Binlog更新的请求,同时主库二...

SQL必知必会

35、数据库主从同步

我们之前讲解了Redis,它是一种高性能的内存数据库;而MySQL是基于磁盘文件的关系型数据库,相比于Redis来说,读取速度会慢一些,但是功能强大,可以用于存储持久化的数据。在实际工作中,我们常常将Redis作为缓存与MySQL配合来使用,当有数据...

SQL必知必会

34、关于索引以及缓冲池的一些解惑

这篇文章是进阶篇的最后一篇,在这一模块中,我主要针对SQL运行的底层原理进行了讲解,其中还有很多问题没有回答,我总结了进阶篇中常见的一些问题,希望能对你有所帮助。下面的内容主要包括了索引原则、自适应Hash、缓冲池机制和存储引擎等。 关于索引(B+树...

SQL必知必会

33、如何定位SQL执行慢的原因

在上一篇文章中,我们了解了查询优化器,知道在查询优化器中会经历逻辑查询优化和物理查询优化。需要注意的是,查询优化器只能在已经确定的情况下(SQL语句、索引设计、缓冲池大小、查询优化器参数等已知的情况)决定最优的查询执行计划。 但实际上SQL执行起来可...

SQL必知必会