【[转]解说SQL优化_MySQL】教程文章相关的互联网学习教程文章

MYSQL 优化常用方法

1、选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要的空间,甚至使用VARCHAR这种类型也是多余的,因为CHAR(6)就可以很好的完成任务了。同样的,如果可以的话,我们应该使用MEDIUMI...

MySQL优化之——数据类型宽度【代码】

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46559861MYSQL中的整数型数据类型都可以指定显示宽度 创建一个表 CREATE TABLE tb_emp( id BIGINT(1)) id字段的数据类型为BIGINT(1),注意到后面的数字1,这表示的是该数据类型指定的显示宽度,指定能够显示的数中数字的个数。 例如,假设声明一个INT类型的字段 YEAR INT(4) ,该声明指明,在year字段中的数据一般只显示4位数字的宽度。 ...

MySQL优化之——简单语法【代码】

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/465592711、默认约束--mysqlCREATE TABLE emp(id INT DEFAULT 12) 2、设置自增列 MYSQL的自增列一定要是有索引的列,设置种子要在表的后面设置--mysql-- 设置自增ID从N开始CREATE TABLE emp (ID INT PRIMARY KEY AUTO_INCREMENT) AUTO_INCREMENT = 100 ; --(设置自增ID从100开始)设置自增列的步长,可以分为全局级别和会话级别,如果是会话级别,那么当用户新建...

MySQL优化之——查看字段长度【代码】

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46559973 CREATE TABLE tmp13(vb VARBINARY(10)) INSERT INTO tmp13 (vb) VALUES(12) SELECT LENGTH(vb) FROM tmp13 INSERT INTO tmp13 (vb) VALUES(1212) MySQL优化之——查看字段长度标签:mysql本文系统来源:http://blog.csdn.net/l1028386804/article/details/46559973

Mysql的一条SQL优化(二)

Columns Index_Type PRIMARY ext_id Unique i_mobile mobile i_msource_type msource_type i_msource_id msource_id 而msource_type列的可选择性是非常低了,基本上到这里我大概知道是怎么回事了,剩下的事情就是验证我的猜测,explain: mysql> explain select ext_id, mid, msource_id, msource_type, referee, mobile, tel, mpassword,status from m_vip_ext where (msource_id=‘xx1391434680574433‘ ...

Mysql的一条SQL优化(一)

开发反应做压测时并发上不去,有条SQL执行非常慢,于是explain下: MariaDB [db_vip]> MariaDB [db_vip]> explain select ext_id, mid, msource_id, msource_type, referee, mobile, tel, mpassword,status from m_db_vip where (msource_id=‘xx1391434680574433‘ and msource_type=1 ) or ( mobile=‘1391434680574433‘ and msource_type=1); -----------------------------------------------...

MySQL优化之——查询【代码】【图】

创建测试表CREATE TABLE fruits (f_id CHAR(10) NOT NULL,s_id INT NOT NULL,f_name CHAR(255) NOT NULL,f_price DECIMAL(8,2) NOT NULL,PRIMARY KEY(f_id) )插入测试数据INSERT INTO fruits(f_id,s_id,f_name,f_price) VALUES(a1,101,apple,5.2), (b1,102,blackberry,5.2), (bs1,105,orange,5.2), (bs2,103,melon,5.2), (t1,106,banana,5.2);使用select语句查询f_id字段的数据SELECT f_id,f_name FROM fruits 注意:MYSQL中SQ...

MySQL优化之——索引【代码】【图】

主键索引是一种特殊的唯一索引,不允许有空值 2、单列索引和复合索引 单列索引只包含单个列 复合索引指多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。使用复合索引时遵循最左前缀集合 3、全文索引 全文索引类型为FULLTEXT,在定义索引的列上支持值的全文查找,允许在这些索引列中插入重复值和空值。全文索引可以在 CHAR、VARCHAR、TEXT类型列上创建。MYSQL只有MYISAM存储引擎支持全文索引...

MySQL优化之——自定义存储过程和函数【代码】【图】

语法CREATE PROCEDURE sp_name ([ proc_parameter ]) [ characteristics..] routine_body proc_parameter指定存储过程的参数列表,列表形式如下:[IN|OUT|INOUT] param_name type其中in表示输入参数,out表示输出参数,inout表示既可以输入也可以输出;param_name表示参数名称;type表示参数的类型 该类型可以是MYSQL数据库中的任意类型 有以下取值:characteristic: LANGUAGE SQL | [NOT] DETERMINISTIC | { CONTAINS SQL | NO S...

MySQL优化之——为用户开通mysql权限【代码】

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46627263为用户开通mysql权限: grant all privileges on *.* to liuyz @"%" identified by "liuyz"; flush privileges;MySQL优化之——为用户开通mysql权限标签:mysql 权限 本文系统来源:http://blog.csdn.net/l1028386804/article/details/46627263

mysql优化连接数防止访问量过高的方法【代码】

很多开发人员都会遇见”MySQL: ERROR 1040: Too many connections”的异常情况,造成这种情况的一种原因是访问量过高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读压力;另一种原因就是MySQL配置文件中max_connections值过小。首先,我们来查看mysql的最大连接数: mysql>show variables like ‘%max_connections%‘; + -----------------+-------+ | Variable_name | Value | + -----------------+-------+ | max_co...

mysql的优化

1、编程分为两种:命令式编程:Imperative Programming,程序员需要告诉程序应该怎么做,也就是 How To Do,传统的高级语言都是命令式编程,比如C#,Java,命令式编程也称为过程化编程,工作在第一线的程序员要做这类工作。声明式编程:Declarative Programming,程序员不需要告诉程序如何去做,只需要告诉程序我要做什么,也就是What To Do,比如SQL、.net中的Linq ,Ant配置,Spring中的依赖注入等,声明式编程也称为非过程化编程...

MySQL优化之COUNT(*)效率

刚给一个朋友解决他写的Discuz!插件的问题,说到MySQL的COUNT(*)的效率,发现越说越说不清楚,干脆写下来,分享给大家。COUNT(*)与COUNT(COL)网上搜索了下,发现各种说法都有:比如认为COUNT(COL)比COUNT(*)快的;认为COUNT(*)比COUNT(COL)快的;还有朋友很搞笑的说到这个其实是看人品的。在不加WHERE限制条件的情况下,COUNT(*)与COUNT(COL)基本可以认为是等价的;但是在有WHERE限制条件的情况下,COUNT(*)会比COUNT(COL)快非常多...

MySQL优化之——备份和恢复【代码】【图】

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46766919 备份 逻辑备份方法 使用MYSQLDUMP命令备份 MYSQLDUMP是MYSQL提供的一个非常有用的数据库备份工具。mysqldump命令执行时将数据库备份成一个文本文件,该文件中实际上包含了多个CREATE 和INSERT语句,使用这些语句可以重新创建表和插入数据 MYSQLDUMP的语法和选项mysqldump -u user -p pwd -h host dbname[tbname,[tbname...]]>filename.sql选项/Option 作...

Slave延迟很大的优化方法总结(MySQL优化)

【http://www.cstor.cn/textdetail_9146.html】  一般而言,slave相对master延迟较大,其根本原因就是slave上的复制线程没办法真正做到并发。简单说,在master上是并发模式(以InnoDB引擎为主)完成事务提交的,而在slave上,复制线程只有一个sql thread用于binlog的apply,所以难怪slave在高并发时会远落后master ORACLE MySQL 5.6版本开始支持多线程复制,配置选项 slave_parallel_workers 即可实现在slave上多线程并发复制。不过...