mysql数据库优化技术—索引篇

mysql数据库优化技术—索引篇

ID:8961002

大小:28.00 KB

页数:3页

时间:2018-04-13

mysql数据库优化技术—索引篇_第1页
mysql数据库优化技术—索引篇_第2页
mysql数据库优化技术—索引篇_第3页
资源描述:

《mysql数据库优化技术—索引篇》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Mysql数据库优化技术—索引篇.txt时尚,就是让年薪八千的人看上去像年薪十万。我们总是要求男人有孩子一样的眼神,父亲一样的能力。一分钟就可以遇见一个人,一小时喜欢上一个人,一天爱上一个人,但需要花尽一生的时间去忘记一个人。(七)表的优化1.选择合适的数据引擎MyISAM:适用于大量的读操作的表InnoDB:适用于大量的写读作的表2.选择合适的列类型使用SELECT*FROMTB_TESTPROCEDUREANALYSE()可以对这个表的每一个字段进行分析,给出优化列类型建议3.对于不保存NULL值的列使用N

2、OTNULL,这对你想索引的列尤其重要4.建立合适的索引5.使用定长字段,速度比变长要快(八)建立索引原则1.合理使用索引一个Table在一次query中只能使用一个索引,使用EXPLAIN语句来检验优化程序的操作情况使用analyze帮助优化程序对索引的使用效果做出更准确的预测2.索引应该创建在搜索、排序、归组等操作所涉及的数据列上3.尽量将索引建立在重复数据少的数据列中,唯一所以最好例如:生日列,可以建立索引,但性别列不要建立索引4.尽量对比较短的值进行索引降低磁盘IO操作,索引缓冲区中可以容纳更多的键值,

3、提高命中率如果对一个长的字符串建立索引,可以指定一个前缀长度5.合理使用多列索引如果多个条件经常需要组合起来查询,则要使用多列索引(因为一个表一次查询只能使用一个索引,建立多个单列索引也只能使用一个)6.充分利用最左前缀也就是要合理安排多列索引中各列的顺序,将最常用的排在前面7.不要建立过多的索引只有经常应用于where,orderby,groupby中的字段需要建立索引.8.利用慢查询日志查找出慢查询(log-slow-queries,long_query_time)(九)充分利用索引1.尽量比较数据类型相同

4、的数据列2.尽可能地让索引列在比较表达式中独立,WHEREmycol<4/2使用索引,而WHEREmycol*2<4不使用3.尽可能不对查询字段加函数,如WHEREYEAR(date_col)<1990改造成WHEREdate_col<’1990-01-01’WHERETO_DAYS(date_col)-TO_DAYS(CURDATE())

5、aightjoin可以强制优化器按照FROM子句的次序来进行联结,可以selectstraightjoin,强制所有联结,也可以select*fromastraightjoinb强制两个表的顺序.6.使用forceindex强制使用指定的索引.如select*fromsong_libforceindex(song_name)orderbysong_name比不用forceindex效率高7.尽量避免使用MySQL自动类型转换,否则将不能使用索引.如将int型的num_col用wherenum_col=‘5’(十

6、)SQL语句的优化1.创建合适的统计中间结果表,降低从大表查询数据的几率2.尽量避免使用子查询,而改用连接的方式.例如:SELECTa.id,(SELECTMAX(created)FROMpostsWHEREauthor_id=a.id)ASlatest_postFROMauthorsa可以改成:SELECTa.id,MAX(p.created)ASlatest_postFROMauthorsASaINNERJOINpostspON(a.id=p.author_id)GROUPBYa.idselectsong_

7、idfromsong_libwheresinger_idin(selectsinger_idfromsinger_libwherefirst_char='A')limit2000改成:selectsong_idfromsong_libainnerjoinsinger_libbona.singer_id=b.singer_idandfirst_char='A'limit20003.插入判断重复键时,使用ONDUPLICATEKEYUPDATE:insertintodb_action.action_today(us

8、er_id,song_id,action_count)values(1,1,1)ONDUPLICATEKEYUPDATEaction_count=action_count+1;4.避免使用游标游标的运行效率极低,可以通过增加临时表,运用多表查询,多表更新等方式完成任务,不要使用游标.(十一)使用Explain分析SQL语句使用索引的情况当你在一条SELECT语句前放上关键词EXPLAI

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。