많은 쓰기가 필요한 앱을 작성 중입니다 (초당 최대 100 개). 나는 또한이 표를 자주 읽으 려합니다. 그러나 필자가 작성하게 될 대다수의 글은 중복 키 인덱스로 인해 실제로 실패 할 것입니다. 이것은 의도 된 것입니다. 실패한 쓰기가 MySQL 테이블 리소스를 소비합니까? 이 나쁜 습관인가?MySQL : 실패하려는 테이블에 많은 쓰기. 나쁜 생각?
답변
제약 조건 위반 여부를 확인하기 위해 테이블 색인을 참조해야하므로 실패한 쓰기는 시스템 리소스를 소비합니다. 악의적 인 실행인지 아닌지는 의도적으로 실패 할 것으로 예상되는 많은 쓰기를 던지기는 다소 이례적인 것처럼 보이지만, 반면에 RDBMS의 작업은 데이터를 저장, 구성 및 검색하는 것입니다. 데이터베이스가 고유 제약 조건을 위반할 수있는 INSERT
을 시도하는 것이 더 빠르며 응용 프로그램 코드로 키를 삽입 한 다음 삽입 할 때 먼저 쿼리해야합니다 (여전히에서 제약 조건을 확인해야 함). RDBMS에서).
인덱스에 대한 읽기는 인덱스 에스컬레이션이 인덱스가 생성 될 때까지 기다리는 락 에스컬레이션을 유발할 것인가? 더러운 '이 가장 좋습니다. –
@RussC - 그게 바로 제가 궁금해하는 것입니다. – phirschybar
http://dev.mysql.com/doc/refman/5.0/en/innodb-transaction-model.html InnoDB 스토리지 및 잠금 문서는 잠금 에스컬레이션이 사용되지 않는다고 제안하는 것 같습니다. –
일반적으로 응용 프로그램에는 무결성 문제를 개념적으로 정의한 비즈니스 규칙 추상화 계층이 있습니다. 그렇다면 대부분의 개발자는 유효성 검사가 발생하기를 기대하고 나서야합니다. OTOH 이것이 일회성 유틸리티이거나 영원히 유일한 개발자라면 작동 할 것입니다. 해킹은 아마도 인덱스 필드를 읽는 것과 비교하여 효율성면에서 큰 향상을 얻지 못할 것이고, 오류 트래핑 및 포팅을 다루는 것은 불쾌한 곳입니다. 여러분을 제외하고는 오류가 아닙니다. (마치 "그것은 기능이 아닌 버그입니다 ...")
- 1. 사용자 삽입 퍼가기 나쁜 생각?
- 2. 일반적인 방법으로 단일 저장소 ... 나쁜 생각?
- 3. MembershipProvider.Initialize()에서 저장소를 주입하고 있습니까? 나쁜 생각?
- 4. 애플릿 위에 IFrame을 표시 하시겠습니까? 나쁜 생각?
- 5. 파이썬에서 모든 예외를 잡기위한 나쁜 생각
- 6. commit-comments에서 changelogs 생성 - 나쁜 생각?
- 7. 웹 서비스에서 전자 상거래 사이트 실행. 나쁜 생각?
- 8. MySQL 쿼리 최적화 --- 당신의 생각
- 9. 더미 AJAX가 "대기"커서를 강제로 호출합니다. 나쁜 생각?
- 10. DB 테이블에 쓰기
- 11. HBASE의 여러 테이블에 쓰기
- 12. Phonegap SQLite 테이블에 쓰기
- 13. mySql 테이블에 인덱스가 많습니까?
- 14. SSIS가 MySQL 테이블에 액세스합니다.
- 15. 데이터베이스 웹 응용 프로그램을 분할하십시오 - 좋은 생각이나 나쁜 생각?
- 16. , 나는 닷넷가 아닌 것은에서 액세스에서 끔찍한와 아주 나쁜 생각
- 17. 단위 테스트를 위해 "친구"선언 사용하기. 나쁜 생각?
- 18. C# : 새 개체를 사용하여 개체를 만들지 만 할당하지 않습니다. 좋은 생각/나쁜 생각?
- 19. 하나의 MySQL 테이블에 많은 사용자 정보를 저장하고 있습니까?
- 20. 미래에 많은 열이 추가 될 MySQL 테이블에 운송 가격 저장
- 21. 나쁜 습관입니까?
- 22. ASP.NET MVC : 많은 테이블에 많은 값을 가져
- 23. 많은 테이블과 같은 테이블에 많은 관계가 있습니다
- 24. 많은 유형의 별칭을 작성하는 것은 나쁜 습관입니까?
- 25. 너무 많은 before_filter를 컨트롤러에 넣으면 나쁜 것입니까?
- 26. 많은 데이터가있는 현재 시스템으로 나쁜 시스템 마이그레이션
- 27. 많은 DLL이있는 응용 프로그램이 나쁜 것입니까?
- 28. 특수 계산기를 사용하여 테이블에 쓰기
- 29. MySQL : 테이블과 컬럼에 데이터 쓰기
- 30. mysql 테이블에 json을 저장하고 쿼리하십시오.
필자는 쓰기가 실패하는 이유를 알고 싶습니다. 실제로 저장하려는 내용에 대해 자세히 설명해 줄 수 있습니까? 내 걱정은 모든 인덱스가 독창성 제약을 검사하여 읽기 스레드를 멈추게하는 잠금을 유발할 수 있다는 것입니다. 당신이 떠날 수있는 것,하지만 인덱스가 포함될 때 그것은 아마도 매우 나쁠 것입니다. –
. 나는 점점 더 많은 소스로부터 데이터를 끌어낼 컨텐트 어 그리 게이터를 설계하고 있습니다. 각 데이터 레코드에 대해 URL과 user_id를 갖습니다. 나는 모든 레코드에 중복 URL 및 user_id의 인스턴스를 갖고 싶지는 않지만 잠재적 인 중복이 존재할 많은 인스턴스가있을 것으로 기대합니다. 내 생각은 인덱스의 자연스러운 기능이 나를 위해 필터링 작업을하도록하는 것이 었습니다. 그러나 그것이 내가 읽는 테이블을 잠글 경우 다른 방법을 찾아야 할 것 같다. (또한 중요하다.) – phirschybar