• 项目中常用的19条 MySQL 优化
  • 原文地址:https://segmentfault.com/a/1190000012155267声明一下:下面的优化方案都是基于 “ Mysql-索引-BTree类型 ” 的一、EXPLAIN做MySQL优化,我们要善用 EXPLAIN 查看SQL执行计划。下面来个简单的示例,标注(1,2,3,4,5)我们要重点关注的数据type列,连接类型。一个好的sql语句至少要达到range级别。杜绝出现all级别key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式key_len...
  •  2019-04-09  |    程成  |    556  |    1  |    数据库  |   MySQL  优化  数据库  项目  
  • MySQL 主要使用的几种索引
  • 一、索引定义MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。实际上,索引也是一张表,该表保存了主键与...
  •  2019-02-26  |    程成  |    346  |    0  |    数据库  |   MySQL  索引  数据库  优化  
  • 为什么要把不带www域名跳转到带www下
  • 前面介绍了不带 www 的网站如何跳转到带 www 的域名,那么为什么要这么做呢?这是个问题。首先说明,这么做是为了网站的 SEO 优化。什么是 SEO:SEO(Search Engine Optimization):汉译为搜索引擎优化。搜索引擎优化是一种利用搜索引擎的搜索规则来提高目前网站在有关搜索引擎内的自然排名的方式。SEO的目的理解是:为网站提供生态式的自我营销解决方案,让网站在行业内占据领先地位,从而获得品牌收益;SEO包含站外SEO和站内SEO两方面;SEO是指为了从搜索引擎中获得更...
  •  2018-01-31  |    程成  |    832  |    0  |    其他  |   www  域名  网站  跳转  优化  
  • 不带www域名自动跳转到带www域名的方法
  • 最近发现自己的网站被同时收录了带 www 域名和不带 www 域名的两个域名,这样不利于 SEO 权值集中和后续优化。怎么样才能解决?这样就需要将不带 www 的域名301永久重定向到带 www 的域名。下面是我整理解决的方法。下面都是基于 Linux 系统实现的!一、新建 .htaccess 文件一般情况下我们用的都是 windows 系统,无法直接新建 .htaccess 文件。我们首先新建个 htaccess.txt 文件,后面会介绍如何修改名称。二、将下面这段代码复制到 txt 中Rew...
  •  2018-01-30  |    程成  |    925  |    1  |    其他  |   域名  重定向  跳转  www  优化  
  • MySQL慢查询优化
  • 最近写接口在多表查询时,发现添加一些索引条件可以使你的 SQL 执行时间大大缩短。原SQL(执行1.873s):SELECT `表1别名`.`djbh` AS `ckd_djbh`, `表1别名`.`djrq`, `表3别名`.`djbh` AS `htd_djbh`, `表3别名`.`khmc`  FROM `表1` `表1别名`  LEFT JOIN ...
  •  2018-01-16  |    程成  |    716  |    0  |    数据库  |   MySQL  优化  查询  数据库  
  • MySQL优化查询性能
  • 查询优化、索引优化、库表结构优化需要齐头并进,一个不落。在获得编写 MySQL 查询的经验的同时,也将学习到如何为高效的查询设计表和索引。同样的,也可以学习到在优化库表结构时会影响到哪些类型的查询。这个过程需要时间。一、为什么查询速度会慢MySQL 在执行查询的时候,“执行”过程可以认为是整个生命周期中最重要的阶段,这其中包括了大量为了检索数据到存储引擎的调用以及调用后的数据处理,包括排序、分组等。在完成这些任务的时候,查询需要在不同的地方话费时间,包括网络,CPU 计算,生成统计信息和执行计划...
  •  2018-01-03  |    程成  |    622  |    0  |    数据库  |   MySQL  优化  性能  查询  数据库  
  • MySQL中如何创建高性能的索引
  • 一、索引介绍索引(在 MySQL 中也叫做“键(key)”)是存储引擎用于快速找到记录的一种数据结构。这是索引的基本功能。索引对于良好的性能非常关键。尤其是当表中的数据量越来越大时,所以对性能的影响愈发重要。在数据量较小且负载较低时,不恰当的索引对性能的影响可能还不明显,但当数据量逐渐增大时,性能则会急剧下降。不过,索引却经常被忽略,有时候甚至被误解,所以在实际案例中经常会遇到由糟糕索引导致的问题。索引优化应该是对查询性能优化最有效的手段了。索引能够轻易将查询性能提高几个数量级,“最优”的索引有...
  •  2018-01-03  |    程成  |    560  |    0  |    数据库  |   MySQL  性能  索引  优化  数据库  
  • MySQL中如何选择优化的数据类型
  • MySQL 支持的数据类型非常多,选择正确的数据类型对于获得高性能至关重要。不管存储哪种类型的数据,下面几个简单的原则都有助于做出更好的选择。最小的通常更好。一般情况下,应该尽量使用可以正确存储数据的最小数据类型。更小的数据类型通常更快,因为它们占用更少的磁盘,内存和 CPU 缓存,并且处理时需要的 CPU 周期也更少。但是要确保没有低估需要存储的值的范围,因为在 schema 中的多个地方增加数据类型的范围是一个非常耗时和痛苦的操作。如果无法确定哪个数据类型是最好的,就选择你认为不会超过范围的...
  •  2018-01-02  |    程成  |    522  |    0  |    数据库  |   MySQL  数据库  优化  
  • MySQL中如何优雅地转换表的存储引擎
  • Mysql中如何做到转换表的存储引擎,同时做到数据不丢失和快速高效。ALTER TABLE将表从一个引擎修改为另一个引擎最简单地方法是使用 ALTER TABLE 语句。下面是将 table 的引擎修改为 InnoDB:            ALTER TABLE table ENGINE = InnoDB;上述语法可以适用任何存储引擎。但有一个问题:需要执行很长的时间。My...
  •  2018-01-02  |    程成  |    568  |    0  |    数据库  |   MySQL  存储引擎  优化  数据库  
  • PHP 中如何 foreach 优化,多表查询优化方案
  • 下面介绍如何优化php中foreach遍历数据库连表查询。原来有需要多表查询的数据时,我都是通过php中foreach语句中,连表查询然后再拼接成需要的数据大致代码如下(这里结合了thinkphp):(其实可以通过两张表连表查询就能获得结果,不知道当时脑回路怎么想的)得到结果如下:这里是通过查询a表的目录,然后再通过foreach与b表连接,然后在foreach里拼接,再与a表连接,再拼接,最后返回结果集。但是这里的笛卡尔积是三张表的数据的数据数量。如果表数据多了,查询时间很长。但是可以通过两条...
  •  2017-02-27  |    程成  |    1326  |    0  |    数据库  |   PHP  查询优化  MySQL  数据库