MysQL 使用技巧: A 、给信息添加索引 B 、不要给所有的信息都添加索引 C 、使用基准测试 D 、减少查询量,只获取你需要的信息@ 数据分页/ 数据分块检索使用 limit @ 不要使用 select *@ 如果一个更长的查询更加高效,则需要谨慎使用大量的短查询 E 、使用 explain 描述查询执行计划 F 、使用慢速查询日志(总是要开启它!) G 、你已经使用了或者有可能使用 group by 就不要使用 distinct H 、使用恰当的数据分割以集群为例,需要使用集群之前就要把集群考虑进去 I、 insert 的性能批量 insert 以及 replace 使用 load data 取代 insert J、 limit m ,n 并不像看起来那样快 K 、如果你有大于 2k 条记录, 千万不用使用 ORDER BY RAND() SELECT * FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `table`)-(SELECT MIN(id) FROM `table`))+(SELECT MIN(id) FROM `table`)) AS id) AS t2 WHERE >= ORDER BY LIMIT 1; 最后在 php 中对这两个语句进行分别查询 10 次, 前者花费时间 秒后者花费时间 秒****** 看来采用 JOIN 的语法比直接在 WHERE 中使用函数效率还要高很多。随着数据量的增加, load data 与 insert 的执行效率越来越接近,不过还是比 inser t 好分文件方式可以提高 load data 的执行效率对 insert 没有什么影响 L、# Use SQL_NO_CACHE when you are SELECTing frequently updated data or large sets of data # 在查询经常更新的数据或者大量数据集时使用 SQL_NO_CACHE # avoid wildcards at the start of LIKE queries #在 LIKE 查询语句的开始部分避免使用通配符# avoid correlated subqueries and in select and where clause (try to avoid in) # 避免使用相关子查询以及 select 和 where 分局( 试着避免) # config params -# 设置参数-# no parisons - isolate indexed columns # 无计算比较- 隔离索引列# mit=0 can help slave lag # mit=0 可以避免从属滞后# ORDER BY and LIMIT work best with equalities and covered indexes # ORDER BY 以及 LIMIT 在同相等的以及叠加索引时一起使用时效果最佳# isolate workloads don ’t let administrative work interfere with cu
MysQL使用技巧 来自淘豆网m.daumloan.com转载请标明出处.