上一页 1 2 3 4 5 6 7 8 9 ··· 13 下一页
摘要: 排序很常见,也很消耗资源,怎么尽可能地降低成本,提高效率! 场景 在市民系统的市民信息表中,查询“杭州”的市民信息,并按照姓名排序返回前 1000 人的姓名、年龄 城市字段 city 加索引,避免全表扫描 SQL 语句,select city,name,age from t where city=' 阅读全文
posted @ 2022-08-11 15:16 菜乌 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 项目中常常需要统计表数据总数,select count(*) from t;。 在 InnoDB 搜索引擎中,count(*) 需要把数据都读到内存中然后计数,数据很多时会很慢。 count 字段或者 ID,会不会好一些呢!实际上在 Mysql 中,count(字段) < count(主键id) < 阅读全文
posted @ 2022-08-10 14:59 菜乌 阅读(433) 评论(0) 推荐(1) 编辑
摘要: 系统中经常会使用到邮箱登录 要验证登录信息常常要根据邮箱查询用户信息,select * from user where email = 'xxx' 怎么给 email 字段创建索引呢? 创建完整索引 /* email 整个字段作为索引 */ alter table user add index in 阅读全文
posted @ 2022-08-09 15:58 菜乌 阅读(483) 评论(0) 推荐(0) 编辑
摘要: 默认情况下,SQL 语句中不会选择索引,都是由优化器自动选择。 优化器为了得到最优方案,会考虑扫描行数、是否使用临时表、是否排序等因素。 但有时候,因为种种原因,优化器选择的并不是最佳索引。 索引选择异常处理方案 analyze table 有时候 Mysql 不能准确判断数据的扫描行数,这时可以用 阅读全文
posted @ 2022-08-08 10:56 菜乌 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 创建合适的索引,尽量少地访问数据库资源,是数据库结构设计需要考虑的内容。 场景 在一个市民信息表上,身份证号码是市民的唯一标识。 Mysql 系列 | 索引(唯一索引 or 普通索引)中讨论了给身份证号建立索引,即可根据身份证号找到对应的市民详细信息。 如果现在有一个高频请求,要根据身份证号查询姓名 阅读全文
posted @ 2022-08-05 15:59 菜乌 阅读(399) 评论(0) 推荐(0) 编辑
摘要: EXPLAIN 用来模拟优化器执行 SQL 语句的执行计划。从而找到 SQL 优化方案。 EXPLAIN 适用于 SELECT、DELETE、INSERT、REPLACE 和 UPDATE 语句。 EXPLAIN 不会真正执行 SQL 语句,只返回执行计划。 本篇使用 Mysql 8.0.12 EX 阅读全文
posted @ 2022-08-04 15:16 菜乌 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 索引时数据库优化最常考虑的内容之一,用对索引可以大大提高查询效率。 场景 一个市民系统,每个人都有唯一的身份证号码, 业务代码已经保证了不会有两个重复的身份证号, 系统要按照身份证号查询姓名, select name from CUser where id_card = 'xxxxxxxyyyyyy 阅读全文
posted @ 2022-08-03 15:46 菜乌 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 数据并发访问时,用锁来实现对数据访问权限的控制。 本文还是以 InnoDB 为默认存储引擎。 Mysql 中的锁 全局锁 对整个数据库实例加锁 全局读锁,让整个库处于只读状态 加锁命令,Flush tables with read lock (FTWRL),其他线程的语句会被阻塞,数据增删改、建表修 阅读全文
posted @ 2022-08-02 17:37 菜乌 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 索引就相当于一本书的目录,有了这个目录能更快查到自己想要的内容。大大提高数据查询效率。 Mysql 中索引在存储引擎层实现。 数据库中的索引 索引模型 哈希表 以键值对(key-value)存储数据 多个 key 经过哈希函数可能会计算出同样的值,相同 key 对应一个链表循环取值。 key 值不递 阅读全文
posted @ 2022-08-01 16:38 菜乌 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 事务是保证一组数据库操作,要么全部成功,要不全部失败。 最经典的例子就是 A 转账给 B,A 的余额扣除 和 B 的余额增加,这两步需要同时成功或失败。 在 Mysql 中,事务支持是引擎层实现。InnoDB 支持事务,而 Mysql 自带的 MISAM 则不支持。 事务有 A(Atomicity) 阅读全文
posted @ 2022-07-22 16:00 菜乌 阅读(89) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 13 下一页