• MySQL error 1093 报错 解决方法
  • 今天要删除一批数据,大致意思是,删除表 A 数据,这些数据在表 A 存在,但是不在表 B 出现的数据,表 A 数据是表 B 数据父类。结果在执行 SQL 时报出 1093 错误,SQL 如下:DELETE FROM 主表 WHERE id IN ( SELECT cpxh.id AS cpxh_id FROM 表1 AS a LEFT JOIN ...
  •  2018-06-26  |    程成  |    358  |    1  |    数据库  |   MySQL  报错  1093  delete  
  • Windows 解决 Mysql 不是内部或者外部命令
  • 在 CMD 中执行 mysql 命令时,经常会报出:“mysql 不是内部或外部命令,也不是可运行的程序或批处理文件。”【解决方法】:1、右击【我的电脑】-【属性】2、点击【高级系统设置】3、点击【高级】-【环境变量】4、找到【PATH】,在【变量值】后面添加【你的 Mysql 安装的目录中找到bin目录】的地址。我的是“D:\phpStudy\MySQL\bin”5、重启你的 CMD 窗口,然后执行“mysql -u root -p”,然后再输入你的密码,就可以进入到 Mysql 了。至此,你...
  •  2018-05-10  |    程成  |    438  |    1  |    数据库  |   MySQL  Windows  命令  数据库  
  • Windows解决Mysql错误1862:your password has expired
  • 当我和往常一样登录 Mysql 时,报了如下一段错误信息:“Your password has expired. To log in you must change it using a client that supports expired passwords.”。中文的意思是:“您的密码已过期。 要登录,您必须使用支持过期密码的客户端进行更改。”原因:Mysql采用了密码过期策略,默认是90天过期。从MySQL 5.7.4版开始,用户的密码过期时间这个特性得以改进,可以通过一个全局变量de...
  •  2018-05-10  |    程成  |    482  |    0  |    数据库  |   MySQL  Windows  数据库  
  • SQL中直接执行 COUNT() 和 SELECT 出来再统计哪个性能好
  • 写 SQL 时,我一直认为直接执行 select count(id) 的性能不好,没有先 select 所有的条数,再通过 count(条数) 的性能优秀,但是最近的一次遭遇改变了我这个错误的想法。首先是一张30万数据的表,我通过先 select 所有再 count(条数) 的方法执行然后执行就报错内存溢出的错误了(如何解决内存溢出可以看这里【点击】)但是我用执行 select count(id) 的方法得到下面结果(执行时间1174ms):可见,select count(id) 比 先一起 s...
  •  2018-01-22  |    程成  |    477  |    0  |    数据库  |   SQL  count  性能  select  统计  数据库  
  • 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  |    程成  |    519  |    0  |    数据库  |   MySQL  优化  查询  数据库  
  • MySQL优化查询性能
  • 查询优化、索引优化、库表结构优化需要齐头并进,一个不落。在获得编写 MySQL 查询的经验的同时,也将学习到如何为高效的查询设计表和索引。同样的,也可以学习到在优化库表结构时会影响到哪些类型的查询。这个过程需要时间。一、为什么查询速度会慢MySQL 在执行查询的时候,“执行”过程可以认为是整个生命周期中最重要的阶段,这其中包括了大量为了检索数据到存储引擎的调用以及调用后的数据处理,包括排序、分组等。在完成这些任务的时候,查询需要在不同的地方话费时间,包括网络,CPU 计算,生成统计信息和执行计划...
  •  2018-01-03  |    程成  |    429  |    0  |    数据库  |   MySQL  优化  性能  查询  数据库  
  • MySQL中如何创建高性能的索引
  • 一、索引介绍索引(在 MySQL 中也叫做“键(key)”)是存储引擎用于快速找到记录的一种数据结构。这是索引的基本功能。索引对于良好的性能非常关键。尤其是当表中的数据量越来越大时,所以对性能的影响愈发重要。在数据量较小且负载较低时,不恰当的索引对性能的影响可能还不明显,但当数据量逐渐增大时,性能则会急剧下降。不过,索引却经常被忽略,有时候甚至被误解,所以在实际案例中经常会遇到由糟糕索引导致的问题。索引优化应该是对查询性能优化最有效的手段了。索引能够轻易将查询性能提高几个数量级,“最优”的索引有...
  •  2018-01-03  |    程成  |    410  |    0  |    数据库  |   MySQL  性能  索引  优化  数据库  
  • MySQL中如何选择优化的数据类型
  • MySQL 支持的数据类型非常多,选择正确的数据类型对于获得高性能至关重要。不管存储哪种类型的数据,下面几个简单的原则都有助于做出更好的选择。最小的通常更好。一般情况下,应该尽量使用可以正确存储数据的最小数据类型。更小的数据类型通常更快,因为它们占用更少的磁盘,内存和 CPU 缓存,并且处理时需要的 CPU 周期也更少。但是要确保没有低估需要存储的值的范围,因为在 schema 中的多个地方增加数据类型的范围是一个非常耗时和痛苦的操作。如果无法确定哪个数据类型是最好的,就选择你认为不会超过范围的...
  •  2018-01-02  |    程成  |    378  |    0  |    数据库  |   MySQL  数据库  优化  
  • MySQL时间线,MySQL 4.1/5.0/5.1/5.5/5.6/5.7各版本的主要特性和区别
  • 在选择 Mysql 版本的时候,了解一下版本的变迁历史是有帮助的。对于怀旧也可以享受一下过去的好日子里是怎么使用 Mysql的。版本3.23(2001)一般认为这个版本的发布是Mysql真正“诞生”的时刻,其开始获得广泛使用。在这个版本,Mysql依然只是一个在平面文件(Flat File) 上实现了 SQL 查询的系统。但一个重要的改进是引入 MyISAM 代替了老旧而且有诸多限制的 ISAM 引擎。InnoDB 引擎也已经可以使用,但没有包含在默认的二进制发行版中,因为它太新了。所以如果要使...
  •  2018-01-02  |    程成  |    1048  |    1  |    数据库  |   MySQL  特性  时间线  版本  
  • MySQL中如何优雅地转换表的存储引擎
  • Mysql中如何做到转换表的存储引擎,同时做到数据不丢失和快速高效。ALTER TABLE将表从一个引擎修改为另一个引擎最简单地方法是使用 ALTER TABLE 语句。下面是将 table 的引擎修改为 InnoDB:            ALTER TABLE table ENGINE = InnoDB;上述语法可以适用任何存储引擎。但有一个问题:需要执行很长的时间。My...
  •  2018-01-02  |    程成  |    372  |    0  |    数据库  |   MySQL  存储引擎  优化  数据库  
  • MySQL中如何选择合适的存储引擎
  • 一、存储引擎有哪些Mysql除了MyISAM和InnoDB存储引擎,还有很多其他的内建存储引擎。Mysql从2007年开始提供了插件式的存储引擎API,从此涌出了一系列为不同目的而设计的存储引擎。其中有一些已经合并到Mysql服务器,但大多数还是第三方产品或者开源项目。二、如何选择合适的Mysql存储引擎这么多的存储引擎,我们怎么选择?大部分情况下,InnoDB都是正确的选择,所以Oracle在MySQL 5.5 版本时终于将 InnoDB 作为默认的存储引擎了。对于如何选择存储引擎,可以简单地...
  •  2018-01-02  |    程成  |    403  |    0  |    数据库  |   MySQL  存储引擎  InnoDB  MyISAM  数据库  
  • MySQL如何显示表的相关信息,并且解释各个信息参数
  • 如何显示Mysql表的相关信息(在Mysql5.0以后的版本中,也可以查询INFORMATION_SCHEMA(INFORMATION_SCHEMA解释在下面备注)中对应的表)。可以使用SHOW TABLE STATUS LIKE ‘table’显示表的相关信息:输出的结果表明,这是一个MyISAM表。输出中还有很多其他信息以及统计信息。下面简单介绍一下每一行的含义。Name          &...
  •  2018-01-02  |    程成  |    384  |    0  |    数据库  |   MySQL    数据库  原理  
  • MySQL中事务的四种隔离级别
  • 一、如何查看查看InnoDB存储引擎 系统级的隔离级别 和 会话级的隔离级别SELECT @@global.tx_isolation,@@tx_isolation;  二、如何设置设置事务全局或者会话隔离级别:SET GLOBAL/SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;三、mysql中四种隔离级别区别READ UNCOMMITTED(未提交读)在READ UNCOMMITTED 级别,事务中的修改,即使没有提交,...
  •  2017-12-29  |    程成  |    524  |    0  |    数据库  |   MySQL  事务  隔离  原理  数据库