[SQL] 사용 *에 베스트 MySQL의 필드를 많이 호출 할 때? [복제]
SQL사용 *에 베스트 MySQL의 필드를 많이 호출 할 때? [복제]
나는 항상 당신이 필요로하는 모든 항목에 이름을 빌드 MySQL의 쿼리에 더 나은 성능이지만 프로필 페이지에서 예를 들어 내가 몇 가지를 제외한 모든 항목을해야 할 수도 있습니다 일반적으로 알고있다.
SELECT user_name,f_name,l_name,country,usa_state,other_state,zip_code,city,gender,birth_date,date_created,date_last_visit,
user_role,photo_url,user_status,friend_count,comment_count,forum_post_count,referral_count,referral_count_total,
setting_public_profile,setting_online,profile_purpose,profile_height,profile_body_type,profile_ethnicity, profile_occupation,profile_marital_status,profile_sex_orientation,profile_home_town,profile_religion,
profile_smoker,profile_drinker,profile_kids,profile_education,profile_income,profile_headline,profile_about_me,
profile_like_to_meet,profile_interest,profile_music,profile_television,profile_books,profile_heroes,profile_here_for,profile_counter FROM users WHERE user_id=1 AND user_role >
그래서 시험의 무리를하지 않고, 어쩌면 더 많은 경험을 가진 사람은 몇 가지 조언에 동조 할 수 있습니까?
이 악화 될 것
SELECT * FROM users WHERE user_id=1 AND user_role >
나는 그 페이지에 내가 DB에서 뭔가 필요하면 나에게 가능한 것을 볼 단지 쉽기 때문에 모든 항목을 나열하는 것을 선호하지만 빨리 다음 될 경우 내가 그들을 나열하지 것이다
해결법
-
==============================
1.참고 : 모든 필드를 명명하는 것은 물론 가장 좋은 방법입니다 만,이 게시물에서 나는 디자인하거나 유지 보수 것들하지 만 성능 이점을 설명합니다.
참고 : 모든 필드를 명명하는 것은 물론 가장 좋은 방법입니다 만,이 게시물에서 나는 디자인하거나 유지 보수 것들하지 만 성능 이점을 설명합니다.
* 표시 구문은 다음과 같은 이유로 속도가 느려질 수 있습니다 :
거의 모든 필드를 필요로하기 때문에, 마지막 이유는 아마도 가장 중요한 하나입니다. 설명 텍스트 필드는 1 페이지에 사용되지 않는 필드 (50)를 할 수 있지만, 서로 다른 필드로 많은 공간으로 10 배를 차지할 수, 말.
이 경우에는 물론 더 나은 모든 필드의 이름을 될 필요하지 않은 긴 필드를 생략 할 것이다.
-
==============================
2.*를 사용하여 고려할 때, 당신은 항상 더 많은 필드 나중에 테이블에 추가 될 가능성을 고려해야한다.
*를 사용하여 고려할 때, 당신은 항상 더 많은 필드 나중에 테이블에 추가 될 가능성을 고려해야한다.
그것은 더 많은 필드가 있다면, 당신은 당신이 필요로하는 것보다 검색하고 더 많은 데이터를 반환 끝낼 수 있었다.
당신은 새로운 분야의 일부에 문제가있을 수 있습니다. 예를 들어, 만약 그냥 필드를 통해 루프를 표시, 당신은 표시하지 않는 새로운 분야가있을 수 있습니다. 또는 데이터 유형은 먼저 서식 일부를해야 할 수도 있습니다.
필드가 테이블을 정상화 예를 들어, 테이블에서 제거 될 수있는 기회도 있습니다. 특정 필드가 그 경우에 깰 수있는 기대 코드입니다.
-
==============================
3.프로그래밍 언어가 연관 목록 / 배열을 지원하지 않는 한 당신은 항상 이름이 이름을 입수해온 수 있습니다 그래서, 당신이 필요로하는 열을 지정해야합니다.
프로그래밍 언어가 연관 목록 / 배열을 지원하지 않는 한 당신은 항상 이름이 이름을 입수해온 수 있습니다 그래서, 당신이 필요로하는 열을 지정해야합니다.
당신이 인덱스 번호를 retreive해야하는 경우, 그 시점에서 모든 인덱스는 하나에 의해 증가 된대로 테이블에 새 열 어디를 삽입하면 * 나중에 큰 문제를 제기 할 수 사용 ...
from https://stackoverflow.com/questions/1960036/best-to-use-when-calling-a-lot-of-fields-in-mysql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 관련된 사람없이 모든 레코드 찾기 (0) | 2020.07.07 |
---|---|
[SQL] LINQ에 SQL 순위 () 변환, 또는 대체 (0) | 2020.07.07 |
[SQL] MySQL은 "선택은 MAX_JOIN_SIZE 행보다 더 많은 검토 것" (0) | 2020.07.07 |
[SQL] 2008 SQL에 원자 MERGE 문인가? (0) | 2020.07.07 |
[SQL] SQL Server 관리 Studio에서 IntelliSense를 분실 (0) | 2020.07.07 |