随笔分类 - MYSQL数据库
摘要:来源:https://mp.weixin.qq.com/s/zdHHg6MmydiUpTopn_sniA 0 简介 窗口函数(Window Function)是 SQL2003 标准中定义的一项新特性,并在 SQL2011、SQL2016 中又加以完善,添加了若干处拓展。窗口函数不同于我们熟悉的普通
阅读全文
posted @ 2021-02-20 22:52
秋华
摘要:先来一张表: CREATE TABLE IF NOT EXISTS `article` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `author_id` int(10) unsigned NOT NULL, `category_id` int(1
阅读全文
posted @ 2020-11-20 12:05
秋华
摘要:1、MySQL 查询优化器是如何工作的 MySQL 查询优化器有几个目标,但是其中最主要的目标是尽可能地使用索引,并且使用最严格的索引来消除尽可能多的数据行。最终目标是提交 SELECT 语句查找数据行,而不是排除数据行。优化器试图排除数据行的原因在于它排除数据行的速度越快,那么找到与条件匹配的数据
阅读全文
posted @ 2020-11-20 11:57
秋华
摘要:接上篇Mysql性能优化二 对表进行水平划分 如果一个表的记录数太多了,比如上千万条,而且需要经常检索,那么我们就有必要化整为零了。如果我拆成100个表,那么每个表只有10万条记录。当然这需要数据在逻辑上可以划分。一个好的划分依据,有利于程序的简单实现,也可以充分利用水平分表的优势。比如系统界面上只
阅读全文
posted @ 2020-11-20 11:48
秋华
摘要:建立适当的索引 说起提高数据库性能,索引是最物美价廉的东西了。不用加内存,不用改程序,不用调sql,只要执行个正确的'create index',查询速度就可能提高百倍千倍,这可真有诱惑力。可是天下没有免费的午餐,查询速度的提高是以插入、更新、删除的速度为代价的,这些写操作,增加了大量的I/O。 是
阅读全文
posted @ 2020-11-20 11:47
秋华
摘要:mysql的性能优化无法一蹴而就,必须一步一步慢慢来,从各个方面进行优化,最终性能就会有大的提升。 Mysql数据库的优化技术 对mysql优化是一个综合性的技术,主要包括 表的设计合理化(符合3NF) 添加适当索引(index) [四种: 普通索引、主键索引、唯一索引unique、全文索引] 分表
阅读全文
posted @ 2020-11-20 11:46
秋华
摘要:SQL书写习惯 了解了 SQL 执行顺序,那么我们就接下来进一步养成日常 sql好习惯,也就是在实现功能同时有考虑性能的思想,数据库是能进行集合运算的工具,我们应该尽量的利用这个工具,所谓集合运算实际就是批量运算,就是尽量减少在客户端进行大数据量的循环操作,而用SQL语句或者存储过程代替。 1.只返
阅读全文
posted @ 2020-11-20 11:02
秋华
摘要:1 查询语句是如何执行 (1)执行FROM语句 在这些 SQL 语句的执行过程中,都会产生一个虚拟表,用来保存 SQL 语句的执行结果(这是重点),我现在就来跟踪这个虚拟表的变化,得到最终的查询结果的过程,来分析整个 SQL 逻辑查询的执行顺序和过程。 第一步,执行FROM语句。我们首先需要知道最开
阅读全文
posted @ 2020-11-20 10:48
秋华
摘要:1 SQL逻辑查询语句执行顺序 还记得上面给出的那一长串的SQL逻辑查询规则么?那么,到底哪个先执行,哪个后执行呢?现在,我先给出一个查询语句的执行顺序: (7) SELECT /* 处理SELECT列表,产生 VT7 */ (8) DISTINCT <select_list> /* 将重复的行从
阅读全文
posted @ 2020-11-20 10:41
秋华
摘要:准备工作 先来一段伪代码,首先你能看懂么? SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP
阅读全文
posted @ 2020-11-20 10:32
秋华