1

몇 백만 개의 행을 가진 테이블이있는 오래된 MySQL 4.1 데이터베이스와이 데이터베이스에 연결되는 오래된 Java 응용 프로그램을 가지고이 테이블에서 수천 개의 행을 빈번하게 반환합니다. 간단한 SQL 쿼리 (예 : SELECT * FROM people WHERE first_name = 'Bob'. Java 응용 프로그램은 클라이언트 쪽 준비된 문을 사용하지만 서버로 전환하는 것을 고려하고 있으며 예제에서 first_name 값은 사용자가 입력 한 내용에 따라 달라질 것입니다).MySQL Prepared Statements vs Stored Procedures 성능

선택 쿼리에서 성능을 높이고 Prepared Statements 또는 Stored Procedures로 전환해야하는지 궁금합니다. 더 빨리/덜 리소스 집약적 인 (또는 둘의 조합이 더 좋은 경우) 일반적인 경험 법칙이 있습니까?

답변

2

색인은 first_name입니다. 맞습니까? 준비된 명령문과 저장 프로 시저 중 하나를 선택하는 것보다 쿼리 속도가 훨씬 빠릅니다.

+0

안녕하세요. 색인을 생성했음을 알려 드려 죄송합니다. 필자는 수백만 행의 테이블과 MySQL의 성능을 향상시키기 위해 노력하지 않았으므로 어디서부터 테스트를 시작해야할지 모르겠습니다. 테이블에 5m 행이있는 경우 해당 테이블 도움말의 열을 색인화하거나 해당 수의 색인을 생성하는 데 문제/성능 문제가 발생합니다 (MySQL 데이터베이스가있는 하드웨어가 최신 정보가 아님)? – amardilo

0

걱정할 쿼리가 하나 뿐인 경우 테스트 플랫폼에서 두 가지 대안을 구현할 수 있어야하며 어떤 성능이 가장 우수한지 알아야합니다.

가장 좋은 방법은 변경 및 테스트 환경에서 그것을 테스트하기 위해 단지처럼

0

이 보이는 (내 생각 엔 ...하지만 큰 차이가 없을 것입니다).

도움 주셔서 감사합니다.