mysql
文章平均质量分 59
qq_16570607
一步一个脚印,在成为优秀程序员的路上。
展开
-
SQL知识汇总
为了应对这种业务场景,MySQL有一种专有语法,一条SQL语句实现插入或更新,可单条可批量。使用要点表要求必须有主键或唯一索引才能起效果,否则insert或update无效。该语法是根据主键或唯一键来判断是新增还是更新。VALUES() 后面应为需要更新的字段,不需要更新的字段不用罗列。遇到已存在记录(根据唯一键或主键)时,自动更新已有的数据;如果表中有多个唯一键(可以是单列索引或复合索引),则任意一个唯一键冲突时,都会自动更新数据。原创 2023-05-03 17:32:54 · 1906 阅读 · 0 评论 -
索引失效-sql
下面的例子中,dept_id是一个varchar2型的字段,在这个字段上有索引,但是下面的语句会执行全表扫描。如果被索引的列中有很多null,就不会使用这个索引。如果没有使用基于函数的索引,那么where子句中对存在索引的列使用函数时,会使优化器忽略掉这些索引。通过把用 or 语法替代不等号进行查询,就可以使用索引,以避免全表扫描:上面的语句改成下面这样的,就可以使用索引了。但是把函数应用在条件上,索引是可以生效的,把上面的语句改成下面的语句,就可以通过索引进行查找。原创 2023-03-28 17:35:09 · 571 阅读 · 0 评论 -
sql调优
sql关键字的执行顺序关键字的顺序不可以颠倒SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY ...sql关键字执行顺序FROM > WHERE > GROUP BY > HAVING > SELECT的字段 > DISTINCT > ORDER BY > LIMITwhere子句中不能使用聚合函数作为表达式,聚合函数如下:COUNT(*)——统计元组个数。C原创 2022-03-16 12:45:21 · 149 阅读 · 0 评论 -
索引树B+结构
一次完整的磁盘IO所花费的时间读写磁头在磁盘扇区上读取或者写入数据,一次磁盘IO所花费的时间:寻道时间指的是读写磁头移动到正确半径上所需要的时间,寻道时间越短,磁盘IO操作越快。一般我们的寻道时间是3-15ms,主流的磁盘寻道时间是5ms。旋转延迟时间找到正确的磁道后,读写磁头移动到正确位置上所消耗的时间。我们一般去磁盘旋转周期的一半作为旋转延时的近似值。7200转/分 -> 120转/秒 一半: 1/240秒 = 4.17ms数据传输指的是将数据从磁盘盘片读取或者写入的时间,一原创 2022-01-21 10:22:04 · 182 阅读 · 0 评论 -
mysql全局唯一ID生成方案
前言一旦数据库被切分到多个物理结点上,我们将不能再依赖数据库自身的主键生成机制。一方面,某个分区数据库自生成的ID无法保证在全局上是唯一的;另一方面,应用程序在插入数据之前需要先获得ID,以便进行SQL路由。推荐方案:Redis生成ID当使用数据库来生成ID性能不够要求的时候,我们可以尝试使用Redis来生成ID。这主要依赖于Redis是单线程的,所以也可以用于生成全局唯一的ID。可以用Redis的原子操作 INCR和INCRBY来实现。可以使用Redis集群来获取更高的吞吐量。假如一个集群中有5台原创 2021-07-15 10:59:45 · 1258 阅读 · 0 评论 -
Mysql性能优化:索引下推
准备工作在开始之前先先准备一张用户表(user),其中主要几个字段有:id、name、age、address。建立联合索引(name,age)。假设有一个需求,要求匹配姓名第一个为陈的所有用户,sql语句如下:SELECT * from user where name like '陈%'根据 “最佳左前缀” 的原则,这里使用了联合索引(name,age)进行了查询,性能要比全表扫描肯定要高。问题来了,如果有其他的条件呢?假设又有一个需求,要求匹配姓名第一个字为陈,年龄为20原创 2021-07-02 15:40:10 · 177 阅读 · 2 评论 -
Mysql的三种分页方法
limit m,n分页语句select * from dept order by deptno desc limit 3,3;select * from dept order by deptno desc limit m,n;limit 3,3的意思扫描满足条件的3+3行,撇去前面的3行,返回最后的3行,那么问题来了,如果是limit 200000,200,需要扫描200200行,如果在一个高并发的应用里,每次查询需要扫描超过20W行,效率十分低下。建立主键或唯一索引, 利用索引(假设每页10条)原创 2021-07-02 12:21:03 · 7761 阅读 · 0 评论