免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3009 | 回复: 0
打印 上一主题 下一主题

MySql 100118:MySQL Optimization 优化(1/2) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-19 11:37 |只看该作者 |倒序浏览


  Normal
  0
  
  7.8 磅
  0
  2
  
  false
  false
  false
  
   
   
   
   
   
   
   
   
   
   
   
   
  
  MicrosoftInternetExplorer4



st1\:*{behavior:url(#ieooui) }
/* Style Definitions */
table.MsoNormalTable
        {mso-style-name:普通表格;
        mso-tstyle-rowband-size:0;
        mso-tstyle-colband-size:0;
        mso-style-noshow:yes;
        mso-style-parent:"";
        mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
        mso-para-margin:0cm;
        mso-para-margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:10.0pt;
        font-family:"Times New Roman";
        mso-ansi-language:#0400;
        mso-fareast-language:#0400;
        mso-bidi-language:#0400;}
MySql 100118:MySQL Optimization 优化(1/2)
@ http://zcatt.cublog.cn
1.   
基本的性能瓶颈
1)磁盘寻道时间, disk seeks
一般小于10ms左右

2)磁盘读写带宽,disk reading and writing
单磁盘一般是10-20MB/s

3)CPU速度, CPU cycles

4)内存带宽,memory bandwidth


2.   
MySQL的几个特别点
1)
使用MyISAM引擎时,MySQL使用的是fast table locking,支持多读者单写者。但这种方式对于 在一个table上持续同时有update和 slow select操作的情况,效率低下。

2)对于 not strict SQL mode,或者使用IGNORE修饰的INSERT or
UPDATE,MySQL处理notransactional tables时,会按如下规则进行:
a.所有columns都有default values
b.如果插入的值超出范围,MySQL会自动设置一个‘最可能的值’,而不是报错。例如,数字值将设置成0,最小或最大值。字符串设置成空串。
c.所有算式都会返回值,即使错误,也不会报告。例如,1/0返回NULL。



3.   
Benchmark
MySQL源码包中的sql-bench目录下是一些性能评价程序。还可以从其他地方找到benchmark程序。不赘述。

4. 优化SELECT和其他语句
1)简化权限设置。复杂权限和访问限制会使权限检查的开销增大。

例如,对table或column的许可限制,都会在相应操作上增加检查的开销。为了提高效率,应当最小化权限限制。

2)使用EXPLAIN。

使用EXPLAIN可以得到MySQL执行SELECT语句的信息。据此可以优化数据库结构和查询方式。细节不赘述,参见手册。

EXPLAIN
[EXTENDED | PARTITIONS] SELECT select_options


3)使用index
加快SELECT...WHERE语句的一个一般方法是考虑使用index.



(这节内容较多,待学习)


5.Locking Issues
内部锁,interal
locking, 是MySQL server自己使用,用于管理多线程(或会话 session)竞争。外部锁,exteranl locking,是MySQL server和其他外部程序用于协同管理表文件的访问的。

5.1 内部锁
MyISAM, MEMORY,和MERGE表使用table-level locking; InnoDB表使用row-level locking。
row-level有deadlock的问题。
下面的场景应当使用table
locks:
1) 绝大多数是读操作;
2)Statements for the table are a mix of reads and writes, where writes
are updates or deletes for a single row that can be fetched with one key read:
3)SELECT combined with concurrent INSERT statement, and very few
UPDATE or DELETE statements
4)Many scans or GROUP BY operations on the
entire table without any writers

UPDATE优先于SELECT获得lock.

5.1.1 table locking issues
InnoDB避免使用LOCK TABLES。
For large tables, table locking is often
better than row locking, but there are some disadvantages:

1)Table locking enables many sessions to read from a table at the same
time, but if a session wants to write to a table, it must firstget exclusive
access. During the update, all other sessions that want to access this
particular table must wait until the update isdone.

2)Table locking causes problems in cases such as when a session is
waiting because the disk is full and free space needs to becomeavailable before
the session can proceed. In this case, all sessions that want to access the
problem table are also put in a waiting state until more disk space is made
available.

The MyISAM storage engine supports
concurrent inserts to reduce contention between readers and writers for a given
table: If a MyISAM table has no holes in the data file (deleted rows in the
middle), an INSERT statement can be executed to add rows to the end of the table
at the same time that SELECT statements are reading rows from the table. If
there are multiple INSERT statements, they are queued and performed in
sequence, concurrently with the SELECT statements.

5.1.2 External Locking
omit












               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/8866/showart_2152849.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP