MySQL数据库优化(三)_MySQL
1. 估算查询性能
在大多数情况下,可以通过统计磁盘搜索次数来估算查询的性能。对小表来说,通常情况下只需要搜索一次磁盘就能找到对应的记录(因为索引可能已经缓存起来了)。对大表来说,大致可以这么估算,它使用B树做索引,想要找到一条记录大概需要搜索的次数为:log(row_count) / log(index_block_length / 3 * 2 / (index_length + data_pointer_length)) + 1。
在MySQL中,一个索引块通常是1024bytes,数据指针通常是4bytes。对于一个有500,000条记录、索引长度为3bytes(medium integer)的表来说,根据上面的公式计算得到需要做 log(500,000)/log(1024/3*2/(3+4)) + 1 = 4 次搜索。
这个表的索引大概需要 500,000 * 7 * 3/2 = 5.2MB的存储空间(假定典型的索引缓冲区的2/3),因此应该会有更多的索引在内存中,并且可能只需要1到2次调用就能找到对应的记录。
对于写来说,大概需要4次(甚至更多)搜索才能找到新的索引位置,更新记录时通常需要2次搜索。
请注意,前面的讨论中并没有提到应用程序的性能会因为log N的值越大而下降。只要所有的东西都能由操作系统或者SQL服务器缓存起来,那么性能只会因为数据表越大而稍微下降。当数据越来越大之后,就不能全部放到缓存中去了,就会越来越慢了,除非应用程序是被磁盘搜索约束的(它跟随着的log N值增加而增加)。为了避免这种情况,可以在数据量增大以后也随着增大索引缓存容量。对 MyISAM 类型表来说,索引缓存容量是由系统变量 key_buffer_size 控制的。
2. SELECT 查询的速度
通常情况下,想要让一个比较慢的 SELECT ... WHERE 查询变得更快的第一件事就是,先检查看看是否可以增加索引。所有对不同表的访问都通常使用索引。可以使用 EXPLAIN 语句来判断 SELECT 使用了哪些索引。详情请看"7.4.5 How MySQL Uses Indexes"和"7.2.1 EXPLAIN Syntax (Get Information About a SELECT)"。
以下是几个常用的提高 MyISAM 表查询速度的忠告:
想要让MySQL将查询优化的速度更快些,可以在数据表已经加载完全部数据后执行行 ANALYZE TABLE 或运行 myisamchk --analyze 命令。它更新了每个索引部分的值,这个值意味着相同记录的平均值(对于唯一索引来说,这个值则一直都是 1)。MySQL就会在当你使用基于一个非恒量表达式的两表连接时,根据这个值来决定使用哪个索引。想要查看结果,可以在分析完数据表后运行 SHOW INDEX FROM tbl_name 查看 Cardinality 字段的值。myisamchk --description --verbose 显示了索引的分布信息。
想要根据一个索引来排序数据,可以运行 myisamchk --sort-index --sort-records=1 (如果想要在索引 1 上做排序)。这对于有一个唯一索引并且想根据这个索引的顺序依次读取记录的话来说是一个提高查询速度的好办法。不过要注意的是,第一次在一个大表上做排序的话将会耗费很长时间。
3. MySQL如何优化 WHERE 子句
这个章节讲述了优化程序如何处理 WHERE 子句。例子中使用了 SELECT 语句,但是在 DELETE 和 UPDATE 语句中对 WHERE 子句的优化是一样的。注意,关于MySQL优化的工作还在继续,因此本章节还没结束。MySQL做了很多优化工作,而不仅仅是文档中提到的这些。
MySQL的一些优化做法如下:
去除不必要的括号:
((a AND b) AND c OR (((a AND b) AND (c AND d))))
-> (a AND b AND c) OR (a AND b AND c AND d)
展开常量:
(a
-> b>5 AND b=c AND a=5
去除常量条件(在展开常量时需要):
(B>=5 AND B=5) OR (B=6 AND 5=5) OR (B=7 AND 5=6)
-> B=5 OR B=6
常量表达示在索引中只计算一次

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Xuexin.com에서 내 학업 자격을 어떻게 확인하나요? Xuexin.com에서 학업 자격을 확인할 수 있습니다. 많은 사용자가 Xuexin.com에서 학업 자격을 확인하는 방법을 모릅니다. 다음으로 편집자는 Xuexin.com에서 학업 자격을 확인하는 방법에 대한 그래픽 튜토리얼을 제공합니다. 유저들이 와서 구경해 보세요! Xuexin.com 사용 튜토리얼: Xuexin.com에서 학업 자격을 확인하는 방법 1. Xuexin.com 입구: https://www.chsi.com.cn/ 2. 웹사이트 쿼리: 1단계: Xuexin.com 주소를 클릭합니다. 위의 홈페이지에 들어가려면 [교육 쿼리]를 클릭합니다. 2단계: 최신 웹페이지에서 아래 그림의 화살표와 같이 [쿼리]를 클릭합니다. 3단계: 새 페이지에서 [학점 파일에 로그인]을 클릭합니다. 4단계: 로그인 페이지에서 정보를 입력하고 [로그인]을 클릭합니다.

12306 티켓 예매 앱의 최신 버전을 다운로드하세요. 모두가 매우 만족하는 여행 티켓 구매 소프트웨어입니다. 소프트웨어에서 제공되는 다양한 티켓 소스가 있어 매우 편리합니다. - 실명인증으로 온라인 구매가 가능합니다. 모든 사용자가 쉽게 여행티켓과 항공권을 구매하고 다양한 할인 혜택을 누릴 수 있습니다. 또한 사전에 예약하고 티켓을 얻을 수도 있습니다. 호텔을 예약하거나 차량으로 픽업 및 하차할 수도 있습니다. 한 번의 클릭으로 원하는 곳으로 이동하고 티켓을 구매할 수 있어 여행이 더욱 간편해지고 편리해집니다. 모든 사람의 여행 경험이 더욱 편안해졌습니다. 이제 편집자가 온라인으로 자세히 설명합니다. 12306명의 사용자에게 과거 티켓 구매 기록을 볼 수 있는 방법을 제공합니다. 1. 철도 12306을 열고 오른쪽 하단의 My를 클릭한 후 My Order를 클릭합니다. 2. 주문 페이지에서 Paid를 클릭합니다. 3. 유료페이지에서

지능이 지배하는 시대에는 사무용 소프트웨어도 대중화되었으며, 유연성으로 인해 대다수의 직장인이 Wps 형식을 채택합니다. 직장에서는 간단한 양식 작성과 텍스트 입력뿐만 아니라 실제 업무를 완료하기 위해 더 많은 운영 기술을 습득해야 합니다. 데이터가 포함된 보고서와 양식을 사용하는 것이 더욱 편리하고 명확하며 정확합니다. 오늘 우리가 당신에게 전하는 교훈은: WPS 테이블이 당신이 찾고 있는 데이터를 찾을 수 없다는 것입니다. 왜 검색 옵션 위치를 확인해야 합니까? 1. 먼저 Excel 테이블을 선택하고 두 번 클릭하여 엽니다. 그런 다음 이 인터페이스에서 모든 셀을 선택합니다. 2. 그런 다음 이 인터페이스의 상단 도구 모음에 있는 "파일"에서 "편집" 옵션을 클릭합니다. 3. 둘째, 이 인터페이스에서 "

모바일 타오바오 앱 소프트웨어는 언제 어디서나 구입할 수 있으며, 모든 제품의 가격표가 명확하여 더욱 편리한 쇼핑을 즐길 수 있습니다. 원하는 대로 자유롭게 검색하고 구매할 수 있습니다. 개인 배송 주소와 연락처를 추가하면 택배사에서 쉽게 연락할 수 있으며, 최신 물류 동향도 실시간으로 확인할 수 있습니다. 사용자가 처음 사용하는 경우 제품을 검색하는 방법을 모르면 검색창에 키워드만 입력하면 모든 제품 결과를 자유롭게 찾을 수 있습니다. 에디터는 모바일 타오바오 사용자가 매장 이름을 검색할 수 있는 자세한 온라인 방법을 제공합니다. 1. 먼저 휴대폰에서 타오바오 앱을 열고,

애플 휴대폰을 이용하여 개통일을 확인하고 싶다면 휴대폰에 있는 일련번호를 통해 확인하는 것이 가장 좋은 방법이며, 애플 공식 홈페이지를 방문하여 컴퓨터에 연결한 후 세 번째 다운로드를 통해 확인할 수도 있습니다. - 그것을 확인하는 파티 소프트웨어. Apple 휴대폰의 활성화 날짜를 확인하는 방법은 무엇입니까? 답변: 일련번호 쿼리, Apple 공식 웹사이트 쿼리, 컴퓨터 쿼리, 타사 소프트웨어 쿼리 1. 사용자가 휴대폰의 일련번호를 아는 것이 가장 좋습니다. 설정, 일반, 이 기기 정보를 열어 일련번호를 확인할 수 있습니다. 2. 일련번호를 이용하면 휴대폰 개통일뿐만 아니라 휴대폰 버전, 휴대폰 원산지, 휴대폰 공장일 등을 확인할 수 있습니다. 3. 사용자는 Apple의 공식 웹 사이트를 방문하여 기술 지원을 찾고, 페이지 하단의 서비스 및 수리 열을 찾아 거기에서 iPhone 활성화 정보를 확인합니다. 4. 사용자

Excel 검색 바로가기 키가 무엇인지 알고 싶으십니까? 대답은 간단합니다. [Ctrl+F]를 사용하여 빠른 검색을 수행하면 됩니다. 우리는 종종 엑셀을 사용하여 다양한 데이터와 이름을 기록하는데, 이를 변경해야 할 경우 데이터가 너무 많아 검색하기가 상당히 불편할 것입니다. 실제로 빠른 검색 바로가기를 사용하여 변경해야 하는 데이터를 찾을 수 있습니다! 그렇다면 엑셀 검색 단축키는 무엇일까요? 오늘은 업무 시간과 노력을 절약하기 위해 엑셀 표에서 바로가기 검색 키를 사용하는 방법을 가르쳐 드리겠습니다. 여기에서는 데모를 위해 이 버전의 Microsoft Office Excel 2010을 사용하고 있습니다.

Hibernate 쿼리 성능을 최적화하기 위한 팁은 다음과 같습니다: 지연 로딩을 사용하여 컬렉션 및 관련 개체 로드를 연기하고, 일괄 처리를 사용하여 업데이트, 삭제 또는 삽입 작업을 결합하여 HQL 외부 연결을 사용하여 자주 쿼리되는 개체를 메모리에 저장합니다. 엔터티 및 관련 엔터티를 검색하고, SELECTN+1 쿼리 모드를 피하기 위해 쿼리 매개변수를 최적화합니다. 커서를 사용하여 블록의 대규모 데이터를 검색합니다.

널리 사용되는 저장 도구인 Alibaba Cloud Disk는 개인 리소스를 효율적으로 관리하는 데 도움이 될 뿐만 아니라 다양한 편리한 기능을 제공합니다. 많은 사용자들이 검색 시 클라우드 디스크 리소스를 찾을 수 없기 때문에 전체 디스크에 있는 모든 리소스를 검색하고 싶어할 수 있습니다. 따라서 아래에서는 이 사이트의 편집자가 이 질문에 대해 자세히 답변하고 구체적인 검색 방법을 공유합니다. 더 알고 싶으시다면 이 기사를 따라가서 자세히 알아보세요! Alibaba Cloud Disk에서 다른 사람의 리소스를 검색하는 방법 1. 먼저 Alibaba Cloud Disk의 폴더 디렉터리에서 리소스 파일의 특정 경로를 검색하여 해당 폴더를 찾습니다. 2. 그런 다음 파일 검색 기능을 사용하여 찾고자 하는 키워드를 입력하여 해당 파일 내용을 찾으십시오. 3. 그런 다음 링크를 다른 사람들과 공유하여 직접 찾고 다운로드합니다.
