데이터 베이스 MySQL 튜토리얼 Monty说MySQL的优化(一)_MySQL

Monty说MySQL的优化(一)_MySQL

Jun 01, 2016 pm 02:01 PM
최적화 데이터베이스 테이블 하드웨어 부드러운

 一、我们可以且应该优化什么?

  硬件

  操作系统/软件库

  SQL服务器(设置和查询)

  应用编程接口(API)

  应用程序

  二、优化硬件

  如果你需要庞大的数据库表(>2G),你应该考虑使用64位的硬件结构,像Alpha、Sparc或即将推出的IA64。因为MySQL内部使用大量64位的整数,64位的CPU将提供更好的性能。

  对大数据库,优化的次序一般是RAM、快速硬盘、CPU能力。

  更多的内存通过将最常用的键码页面存放在内存中可以加速键码的更新。

  如果不使用事务安全(transaction-safe)的表或有大表并且想避免长文件检查,一台UPS就能够在电源故障时让系统安全关闭。

  对于数据库存放在一个专用服务器的系统,应该考虑1G的以太网。延迟与吞吐量同样重要。

  三、优化磁盘

  为系统、程序和临时文件配备一个专用磁盘,如果确是进行很多修改工作,将更新日志和事务日志放在专用磁盘上。

  低寻道时间对数据库磁盘非常重要。对与大表,你可以估计你将需要log(行数)/log(索引块长度/3*2/(键码长度 + 数据指针长度))+1次寻到才能找到一行。对于有500000行的表,索引Mediun int类型的列,需要log(500000) / log(1024/3*2/(3 + 2))+1=4次寻道。上述索引需要500000*7*3/2=5.2M的空间。实际上,大多数块将被缓存,所以大概只需要1-2次寻道。

  然而对于写入(如上),你将需要4次寻道请求来找到在哪里存放新键码,而且一般要2次寻道来更新索引并写入一行。

  对于非常大的数据库,你的应用将受到磁盘寻道速度的限制,随着数据量的增加呈N log N数据级递增。

  将数据库和表分在不同的磁盘上。在MySQL中,你可以为此而使用符号链接。

  条列磁盘(RAID 0)将提高读和写的吞吐量。

  带镜像的条列(RAID 0+1)将更安全并提高读取的吞吐量。写入的吞吐量将有所降低。

  不要对临时文件或可以很容易地重建的数据所在的磁盘使用镜像或RAID(除了RAID 0)。

  在Linux上,在引导时对磁盘使用命令hdparm -m16 -d1以启用同时读写多个扇区和DMA功能。这可以将响应时间提高5~50%。

  在Linux上,用async (默认)和noatime挂载磁盘(mount)。

  对于某些特定应用,可以对某些特定表使用内存磁盘,但通常不需要。

  四、优化操作系统

  不要交换区。如果内存不足,增加更多的内存或配置你的系统使用较少内存。

  不要使用NFS磁盘(会有NFS锁定的问题)。

  增加系统和MySQL服务器的打开文件数量。(在safe_mysqld脚本中加入ulimit -n #)。

  增加系统的进程和线程数量。

  如果你有相对较少的大表,告诉文件系统不要将文件打碎在不同的磁道上(Solaris)。

  使用支持大文件的文件系统(Solaris)。

  选择使用哪种文件系统。在Linux上的Reiserfs对于打开、读写都非常快。文件检查只需几秒种。

  五、选择应用编程接口

  PERL

  可在不同的操作系统和数据库之间移植。

  适宜快速原型。

  应该使用DBI/DBD接口。

  PHP

  比PERL易学。

  使用比PERL少的资源。

  通过升级到PHP4可以获得更快的速度。

  C

  MySQL的原生接口。

  较快并赋予更多的控制。

  低层,所以必须付出更多。

  C++

  较高层次,给你更多的时间来编写应用。

  仍在开发中

  ODBC

  运行在Windows和Unix上。

  几乎可在不同的SQL服务器间移植。

  较慢。MyODBC只是简单的直通驱动程序,比用原生接口慢19%。

  有很多方法做同样的事。很难像很多ODBC驱动程序那样运行,在不同的领域还有不同的错误。

  问题成堆。Microsoft偶尔还会改变接口。

  不明朗的未来。(Microsoft更推崇OLE而非ODBC)

  ODBC

  运行在Windows和Unix上。

  几乎可在不同的SQL服务器间移植。

  较慢。MyODBC只是简单的直通驱动程序,比用原生接口慢19%。

  有很多方法做同样的事。很难像很多ODBC驱动程序那样运行,在不同的领域还有不同的错误。

  问题成堆。Microsoft偶尔还会改变接口。

  不明朗的未来。(Microsoft更推崇OLE而非ODBC)

  JDBC

  理论上可在不同的操作系统何时据库间移植。

  可以运行在web客户端。

  Python和其他

  可能不错,可我们不用它们

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Apple Vision Pro를 PC에 연결하는 방법 Apple Vision Pro를 PC에 연결하는 방법 Apr 08, 2024 pm 09:01 PM

Apple Vision Pro 헤드셋은 기본적으로 컴퓨터와 호환되지 않으므로 Windows 컴퓨터에 연결되도록 구성해야 합니다. Apple Vision Pro는 출시 이후 큰 인기를 끌었으며, 최첨단 기능과 광범위한 조작성을 통해 그 이유를 쉽게 알 수 있습니다. PC에 맞게 일부 조정할 수 있지만 기능은 AppleOS에 크게 의존하므로 기능이 제한됩니다. AppleVisionPro를 내 컴퓨터에 어떻게 연결합니까? 1. 시스템 요구 사항 확인 최신 버전의 Windows 11이 필요합니다. (Custom PC 및 Surface 장치는 지원되지 않습니다.) 64비트 2GHZ 이상 빠른 프로세서 지원 고성능 GPU, 대부분

MS 그림판이 Windows 11에서 제대로 작동하지 않습니다. MS 그림판이 Windows 11에서 제대로 작동하지 않습니다. Mar 09, 2024 am 09:52 AM

Microsoft Paint가 Windows 11/10에서 작동하지 않습니까? 글쎄, 이것은 일반적인 문제인 것 같으며 우리는 이를 해결할 수 있는 몇 가지 훌륭한 솔루션을 가지고 있습니다. 사용자들은 MSPaint를 사용하려고 할 때 작동하지 않거나 열리지 않는다고 불평해 왔습니다. 앱의 스크롤바가 작동하지 않고, 붙여넣기 아이콘이 표시되지 않고, 충돌이 발생하는 등의 현상이 발생합니다. 다행히 Microsoft 그림판 앱 관련 문제를 해결하는 데 도움이 되는 가장 효과적인 문제 해결 방법 중 일부를 수집했습니다. Microsoft 그림판이 작동하지 않는 이유는 무엇입니까? MSPaint가 Windows 11/10 PC에서 작동하지 않는 몇 가지 이유는 다음과 같습니다. 보안 식별자가 손상되었습니다. 정지 시스템

iPhone에서 Shazam 앱이 작동하지 않음: 수정 iPhone에서 Shazam 앱이 작동하지 않음: 수정 Jun 08, 2024 pm 12:36 PM

iPhone의 Shazam 앱에 문제가 있나요? Shazam은 노래를 듣고 노래를 찾는 데 도움을 줍니다. 하지만 Shazam이 제대로 작동하지 않거나 노래를 인식하지 못하는 경우 수동으로 문제를 해결해야 합니다. Shazam 앱을 복구하는 데 시간이 오래 걸리지 않습니다. 따라서 더 이상 시간을 낭비하지 않고 아래 단계에 따라 Shazam 앱 문제를 해결하세요. 수정 1 – 굵은 텍스트 기능 비활성화 iPhone의 굵은 텍스트로 인해 Shazam이 제대로 작동하지 않을 수 있습니다. 1단계 – iPhone 설정에서만 이 작업을 수행할 수 있습니다. 그러니 열어보세요. 2단계 – 다음으로 "디스플레이 및 밝기" 설정을 엽니다. 3단계 - "굵은 텍스트"가 활성화된 경우

Windows 11의 기존 사진에서 새로운 사진 앱으로 사진 이동 Windows 11의 기존 사진에서 새로운 사진 앱으로 사진 이동 Mar 10, 2024 am 09:37 AM

이 문서에서는 Windows 11의 Photos Legacy에서 새로운 사진 앱으로 사진을 마이그레이션하는 방법을 안내합니다. Microsoft는 Windows 11에서 개선된 사진 앱을 도입하여 사용자에게 더욱 간단하고 기능이 풍부한 환경을 제공했습니다. 새로운 Photos 앱은 이전 PhotosLegacy 앱과 다르게 사진을 정렬합니다. 앨범을 만드는 대신 사진을 다른 Windows 파일과 같은 폴더로 정리합니다. 그러나 여전히 Photos Legacy 앱을 사용하는 사용자는 사진을 새 버전의 Microsoft Photos로 쉽게 마이그레이션할 수 있습니다. 포토란?

Ubuntu 24.04에서 Ubuntu Notes 앱을 설치하고 실행하는 방법 Ubuntu 24.04에서 Ubuntu Notes 앱을 설치하고 실행하는 방법 Mar 22, 2024 pm 04:40 PM

고등학교에서 공부하는 동안 일부 학생들은 매우 명확하고 정확한 필기를 하며, 같은 수업을 받는 다른 학생들보다 더 많은 필기를 합니다. 어떤 사람들에게는 노트 필기가 취미인 반면, 어떤 사람들에게는 중요한 것에 대한 작은 정보를 쉽게 잊어버릴 때 필수입니다. Microsoft의 NTFS 응용 프로그램은 정규 강의 외에 중요한 메모를 저장하려는 학생들에게 특히 유용합니다. 이 기사에서는 Ubuntu24에 Ubuntu 애플리케이션을 설치하는 방법을 설명합니다. Ubuntu 시스템 업데이트 Ubuntu 설치 프로그램을 설치하기 전에 Ubuntu24에서 새로 구성된 시스템이 업데이트되었는지 확인해야 합니다. 우분투 시스템에서 가장 유명한 "a"를 사용할 수 있습니다

컴퓨터 응용 프로그램에서 알 수 없는 소프트웨어 예외가 발생하는 경우 수행할 작업 컴퓨터 응용 프로그램에서 알 수 없는 소프트웨어 예외가 발생하는 경우 수행할 작업 Mar 13, 2024 am 10:08 AM

해결 방법: 1. 컴퓨터를 다시 시작합니다. 2. 소프트웨어 버전을 업데이트합니다. 3. 프로그램을 제거하고 다시 설치합니다. 5. 컴퓨터에서 바이러스 또는 악성 코드 감염을 확인합니다. 7. 충돌을 일으킬 수 있는 다른 프로그램을 비활성화하거나 제거합니다.

C++ 프로그램 최적화: 시간 복잡도 감소 기술 C++ 프로그램 최적화: 시간 복잡도 감소 기술 Jun 01, 2024 am 11:19 AM

시간 복잡도는 입력 크기를 기준으로 알고리즘의 실행 시간을 측정합니다. C++ 프로그램의 시간 복잡성을 줄이는 팁에는 데이터 저장 및 관리를 최적화하기 위한 적절한 컨테이너(예: 벡터, 목록) 선택이 포함됩니다. Quick Sort와 같은 효율적인 알고리즘을 활용하여 계산 시간을 단축합니다. 여러 작업을 제거하여 이중 계산을 줄입니다. 불필요한 계산을 피하려면 조건부 분기를 사용하세요. 이진 검색과 같은 더 빠른 알고리즘을 사용하여 선형 검색을 최적화합니다.

Laravel 성능 병목 현상 공개: 최적화 솔루션 공개! Laravel 성능 병목 현상 공개: 최적화 솔루션 공개! Mar 07, 2024 pm 01:30 PM

Laravel 성능 병목 현상 공개: 최적화 솔루션 공개! 인터넷 기술이 발전함에 따라 웹사이트와 애플리케이션의 성능 최적화가 점점 더 중요해지고 있습니다. 널리 사용되는 PHP 프레임워크인 Laravel은 개발 프로세스 중에 성능 병목 현상에 직면할 수 있습니다. 이 문서에서는 Laravel 애플리케이션이 직면할 수 있는 성능 문제를 살펴보고 개발자가 이러한 문제를 더 잘 해결할 수 있도록 몇 가지 최적화 솔루션과 특정 코드 예제를 제공합니다. 1. 데이터베이스 쿼리 최적화 데이터베이스 쿼리는 웹 애플리케이션의 일반적인 성능 병목 현상 중 하나입니다. 존재하다

See all articles