【mysql优化小技巧】教程文章相关的互联网学习教程文章

MySQL手册版本5.0.20-MySQL优化(二)(1)_PHP教程

7.2.1 EXPLAIN 语法(得到SELECT 的相关信息)EXPLAIN tbl_name或者:EXPLAIN SELECT select_optionsEXPLAIN 语句可以被当作 DESCRIBE 的同义词来用,也可以用来获取一个MySQL要执行的 SELECT 语句的相关信息。EXPLAIN tbl_name 语法和 DESCRIBE tbl_name 或 SHOW COLUMNS FROM tbl_name 一样。当在一个 SELECT 语句前使用关键字 EXPLAIN 时,MYSQL会解释了即将如何运行该 SELECT 语句,它显示了表如何连接、连接的顺序等信息。本章...

MySQL手册版本5.0.20-MySQL优化(二)(1)(2)_PHP教程

表中最多只有一行匹配的记录,它在查询一开始的时候就会被读取出来。由于只有一行记录,在余下的优化程序里该行记录的字段值可以被当作是一个恒定值。const 表查询起来非常快,因为只要读取一次!const 用于在和 PRIMARY KEY 或 UNIQUE 索引中有固定值比较的情形。下面的几个查询中,tbl_name 就是 const 表了:SELECT * FROM tbl_name WHERE primary_key=1;SELECT * FROM tbl_nameWHERE primary_key_part1=1 AND primary_key_part...

MySQL手册版本5.0.20-MySQL优化(四)(1)(3)_PHP教程

7.2.12 加速 INSERT插入一条记录花费的时间由以下几个因素决定,后面的数字大致表示影响的比例:连接:(3)发送查询给服务器:(2)解析查询:(2)插入记录:(1 x 记录大小)插入索引:(1 x 索引数量)关闭:(1)这里并没有考虑初始化时打开数据表的开销,因为每次运行查询只会做这么一次。如果是 B-tree 索引的话,随着索引数量的增加,插入记录的速度以 log N 的比例下降。可以使用以下几种方法来提高插入速度:如果要在同一...

MySQL手册版本5.0.20-MySQL优化(四)(1)(4)_PHP教程

可以在锁表后,一起执行几个语句来加速 INSERT 操作:LOCK TABLES a WRITE;INSERT INTO a VALUES (1,23),(2,34),(4,33);INSERT INTO a VALUES (8,26),(6,29);UNLOCK TABLES;这对性能提高的好处在于:直到所有的 INSERT 语句都完成之后,索引缓存一次性刷新到磁盘中。通常情况是,多有少次 INSERT 语句就会有多数次索引缓存刷新到磁盘中的开销。如果能在一个语句中一次性插入多个值的话,显示的锁表操作也就没必要了。对事务表而言,...

MySQL手册版本5.0.20-MySQL优化(二)(1)(3)_PHP教程

连接类型跟 ALL 一样,不同的是它只扫描索引树。它通常会比 ALL 快点,因为索引文件通常比数据文件小。MySQL在查询的字段知识单独的索引的一部分的情况下使用这种连接类型。ALL将对该表做全部扫描以和从前一个表中取得的记录作联合。这时候如果第一个表没有被标识为 const 的话就不大好了,在其他情况下通常是非常糟糕的。正常地,可以通过增加索引使得能从表中更快的取得记录以避免 ALL。possible_keyspossible_keys 字段是指MySQ...

MySQL手册版本5.0.20-MySQL优化(四)(1)(5)_PHP教程

通常地,应该保存所有的冗余数据(在数据库原理中叫做"第三范式")。然而,为了能取得更高的效率复制一些信息或者创建摘要表也是划算的。存储过程或者 UDFs(用户定义函数) 的方式在执行一些任务时可能性能更高。尽管如此,当数据库不支持这些特性时,还是有其他的替代方法可以达到目的,即使它们有点慢。可以从查询缓存或应答中取得结果,然后将很多次的插入及更新操作放在一起做。如果数据库支持表锁(如MySQL和ORACLE),那么这...

MySQL手册版本5.0.20-MySQL优化(二)(1)(4)_PHP教程

下面的例子展示了如何通过 EXPLAIN 提供的信息来较大程度地优化多表联合查询的性能。假设有下面的 SELECT 语句,正打算用 EXPLAIN 来检测:EXPLAIN SELECT tt.TicketNumber, tt.TimeIn, tt.ProjectReference, tt.EstimatedShipDate, tt.ActualShipDate, tt.ClientID, tt.ServiceCodes, tt.RepetitiveID, tt.CurrentProcess, tt.CurrentDPPerson, tt.RecordVolume, tt.DPPr...

MySQL手册版本5.0.20-MySQL优化(四)(1)_PHP教程

7.2.9 MySQL 如何优化 ORDER BY在一些情况下,MySQL可以直接使用索引来满足一个 ORDER BY 或 GROUP BY 子句而无需做额外的排序。尽管 ORDER BY 不是和索引的顺序准确匹配,索引还是可以被用到,只要不用的索引部分和所有的额外的 ORDER BY 字段在 WHERE 子句中都被包括了。下列的几个查询都会使用索引来解决 ORDER BY 或 GROUP BY 部分:SELECT * FROM t1 ORDER BY key_part1,key_part2,... ;SELECT * FROM t1 WHERE key_part1=con...

MySQL手册版本5.0.20-MySQL优化(四)(1)(2)_PHP教程

想要提高 ORDER BY 的速度,首先要看MySQL能否使用索引而非额外的排序过程。如果不能使用索引,可以试着遵循以下策略:增加 sort_buffer_size 的值。增加 read_rnd_buffer_size 的值。修改 tmpdir,让它指向一个有很多剩余空间的专用文件系统。如果使用MySQL 4.1或更新,这个选项允许有多个路径用循环的格式。各个路径之间在 Unix 上用冒号(:)分隔开来,在 Windows,NetWare以及OS/2 上用分号(;)。可以利用这个特性将负载平均分...

MySQL优化全攻略-服务器参数调整_PHP教程

正确的编译方法固然重要,但它只是提高MySQL服务器性能工作的一部分。MySQL服务器的许多参数会影响服务器的性能表现,而且我们可以把这些参数保存到配置文件,使得每次MySQL服务器启动时这些参数都自动发挥作用。这个配置文件就是my.cnf。      MySQL服务器提供了my.cnf文件的几个示例,它们可以在/usr/local/mysql/share/mysql/目录下找到,名字分别为my-small.cnf、my-medium.cnf、my-large.cnf以及my-huge.cnf。文件名字中关...

MYSQL这个怎么优化

SELECT * FROM add ORDER BY LENGTH( title ) DESC LIMIT 10 数据20W条,执行要1秒多。。。。怎么优化哇 回复讨论(解决方案) 这已经是最简单的了啊 还怎么优化啊 建议用缓存吧 查询的结果缓存起来 不需要反复查询了 order by 恐怕优化不了,1秒多也不慢呀。 20W条不多,建议重新设计数据库,新建一个列,储存LENGTH( title ) ,在插入时,用 strlen($title) 计算。然后这个新的列建立索引。(如果id是自...

mysql优化问题Usingwhere;Usingfilesort

explain select userid from team_enewsmember where agentid in(select userid from team_enewsmember where agentid='2' and levelid>=1 group by userid) and levelid>=1 group by userid 如果主键userid与agentid联合索引就会出现 Using where; Using index 怎么都去不掉 Using where; Using filesort,请高手指点。 回复讨论(解决方案) userid 是主键,干嘛还要...

mysql优化查询索引问题

每个表都自增主键索引ID和建立的索引USERID 在优化时,那么其他经常查询的字段,是否还有必要建立索引? 还是使用关联ID或USERID查询就可以了? 回复讨论(解决方案) 听从 EXPLAIN 的建议

php将excel数据导入到mysql优化,该怎么解决

php将excel数据导入到mysql优化我的需求是这样的1、从客户端上传2、每张excel的数据量一般为3万条以上我的问题是:一次性导入这么多数据到mysql中?------解决方案--------------------一次性导入可能不行,分批导入。 ------解决方案--------------------超过限制大小就不能导入了可以考虑转换成sql脚本导入 ------解决方案--------------------每张有3万多,应该一次转不完吧,记忆中好像记录多导致转换失败的帖子看过几回,不过自己...

MYSQL这个如何优化【图】

MYSQL这个怎么优化SELECT * FROM addORDER BY LENGTH( title ) DESC LIMIT 10数据20W条,执行要1秒多。。。。怎么优化哇 ------解决方案--------------------这已经是最简单的了啊 还怎么优化啊 建议用缓存吧 查询的结果缓存起来 不需要反复查询了------解决方案--------------------order by 恐怕优化不了,1秒多也不慢呀。------解决方案--------------------20W条不多,建议重新设计数据库,新建一个列,储存LENGTH( title ) ,...