- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MysQL使用技能
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 t1.id = t2.id
ORDER BY t1.id LIMIT 1;
最后在php中对这两个语句进行分别查询10次,
前者花费时间 0.147433 秒
后者花费时间 0.015130 秒
****** 看来采用JOIN的语法比直接在WHERE中使用函数效率还要高很多。
随着数据量的增加,load data 与insert的执行效率越来越接近,不过还是比insert好
分文件方式可以提高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 calculated comparisons - isolate indexed columns
# 无计算比较 -隔离索引列
# innodb_flush_commit=0 can help slave lag
# innodb_flush_commit=0 可以避免从属滞后
# ORDER BY and LIMIT work best with equalities and covered indexes
# ORDER BY以及LIMIT在同相等的以及叠加索引时一起使用时效果最佳
# isolate workloads don’t let administrative work interfere with customer performance. (ie backups)
# 隔离工作内容 不要让管理员的工作影响了用户的行为
# use optimistic locking, not pessimistic locking. try to use shared lock, not exclusive lock. share mode vs. FOR UPDATE
# 使用乐观锁,而不是悲观锁. 试着使用共享锁定而不是独占锁.共享模式vsFOR UPDATE
# use row-level instead of table-level locking for OLTP workloads
# 对于联机事务处理(OLTP)工作任务尽量使用行级锁定而不是表级锁定
# Know your storage engines and what performs best for your needs, know that different ones exist.
# 了解存储引擎以及哪种引擎最符合你的需求,了解这些引擎之间的不同.
* use MERGE tables ARCHIVE tables for logs
* 使用MERGE表和ARCHIVE表记录日志
# Optimize for data types, use consistent
您可能关注的文档
- Kondca高一英语名词性从句练习题含答案剖析.doc
- KRUPS面包机建造面包.doc
- KROLL 塔式起重机撤除施工安全措施.doc
- ks2201仿单新.doc
- KS5U高考二轮温习物理考案4功和能.doc
- KS5U高考语文二轮温习专题一教案字音.doc
- KTV管理制度 全套1.doc
- KTV行政部职员薪资表.doc
- KYIA 090 卡杨公路土建I标环境保护水土保持任务总结.doc
- KWNY顺序文件汇编.doc
- 浙江省丽水发展共同体高二下学期4月期中英语试题(原卷版).doc
- 英文外贸函电(第三版)PPTUnit+1_教学课件.pptx
- 超越英语专业篇综合教程2-Unit 1-LearningPPT课件.pptx
- 超越英语专业篇综合教程2-Unit 2-OrganizationsPPT课件.pptx
- 英文外贸函电(第三版)PPTUnit+5_教学课件.pptx
- 英文外贸函电(第三版)PPTUnit+6_教学课件.pptx
- 致用英语(第三版)听力教程2教学课件Unit 9-PPT课件.pptx
- 致用英语(第三版)听力教程2教学课件Unit 1-PPT课件.pptx
- 《会展英语》(高职商务英语专业金课系列教材)Unit 4 Booth Design and Installation.pptx
- 《国际贸易实务》(高职商务英语专业金课系列教材)Unit+8_教学PPT课件.pptx
文档评论(0)