摘要:
比如在Northwind数据库中有一个查询为 SELECT c.CustomerId,CompanyName FROM Customers c WHERE EXISTS( SELECT OrderID FROM Orders o WHERE o.CustomerID=c.CustomerID) 这里 阅读全文
摘要:
1.int型子查询陷阱 如下两个表: 2表的数据量: 要求查询班级名称是'3'的学生? 1.用in查询: 花费了0.17秒,用explain分析语句:发现也是class表是全局扫描,user表用了class_id索引。 解释:我们理解的是先查询in里面的班级编号,然后利用班级编号去查询外面的id和n 阅读全文
摘要:
在长期的数据更改过程中, 索引文件和数据文件,都将产生空洞,形成碎片.(不停的删除修改导致) 解决办法: (1)我们可以通过一个nop操作(不产生对数据实质影响的操作), 来修改表. 比如: 表的引擎为innodb , 可以 alter table xxx engine innodb(修改表的引擎类 阅读全文
摘要:
MySQL 数据表主要支持六种类型 ,分别是:BDB、HEAP、ISAM、MERGE、MYISAM、InnoBDB。 这六种又分为两类,一类是”事务安全型”(transaction-safe),包括BDB和InnoDB;其余都属于第二类,称为”非事务安全型”(non-transaction-safe 阅读全文
摘要:
mysql的key和index多少有点令人迷惑,这实际上考察对数据库体系结构的了解的。 1).key 是数据库的物理结构,它包含两层意义,一是约束(偏重于约束和规范数据库的结构完整性),二是索引(辅助查询用的)。包括primary key, unique key, foreign key 等。 pr 阅读全文
摘要:
索引与排序 排序可能发生2种情况: 1: 对于覆盖索引,直接在索引上查询时,就是有顺序的, using index 2: 先取出数据,形成临时表做filesort(文件排序,但文件可能在磁盘上,也可能在内存中) 我们的争取目标 取出来的数据本身就是有序的! 利用索引来排序. 比如: goods商品表 阅读全文
摘要:
limit 翻页原理 limit offset,N, 当offset非常大时, 效率极低, 原因是mysql并不是跳过offset行,然后单取N行, 而是取offset+N行,返回放弃前offset行,返回N行. 效率较低,当offset越大时,效率越低 通过show profile可以查看: 优化 阅读全文
摘要:
crc32 — 计算一个字符串的 crc32 多项式生成 string 参数的 32 位循环冗余校验码多项式……:这句话从英文翻译过来的,不正确,准确的说应该是这么理解: 以32位循环冗余校验多项式算法,来计算一个字符串,返回一个(可能带符号的)整数。使用方法: 这个函数的功能类似于md5算法、sh 阅读全文