하지만 의심이 있습니다. 누군가이 보석을 생산에 사용합니까? 성능 테스트는 어떻습니까? mysql gem보다 빠릅니까? 안정적입니까?
해결 방법
mysql2
는 한동안 부실한 기존 mysql
gem을보다 현대적인 대체 로 의미합니다. 또한 저자가 더 이상 지원하지 않고 더 많은 Ruby 구현과 호환되기 때문에 모든 사람에게 순수한 Ruby 버전을 사용하도록 권장한다고 들었습니다 (그러나 훨씬 느립니다).
mysql
gem의 첫 번째 문제는 C에서 어떤 타입 캐스팅도하지 않는다는 것입니다. 그것은 당신에게 적절한 루비 타입으로 변환해야하는 루비 문자열을 돌려줍니다. 순수한 루비에서 그렇게하는 것은 매우 느리며, 처음에 존재하지 않아도되는 객체를 힙에 생성합니다. 그리고 우리 모두 알다시피 Ruby의 GC는 속도 저하의 주된 이유입니다. 따라서 그것을 피하고 가능한 한 순수 C로 많은 작업을 수행하는 것이 가장 좋습니다.
두 번째는 연결, 쿼리 전송, 응답 대기, 연결 종료까지 전체 루비 VM을 차단한다는 것입니다. mysqlplus
는 확실히이 문제에 도움이되지만 내가 아는 한 쿼리를 보내는 경우에만 해당됩니다.
mysql2
는 API를 매우 단순하게 유지하면서 이러한 문제를 해결하는 것을 목표로합니다. Eric Wong
(Unicorn의 작성자)은 거의 모든 것을 비 차단으로 만들고 Ruby에서 GVL을 릴리스하는 멋진 패치를 제공했습니다. Mysql2 :: Result
클래스는 Enumerable을 구현하므로 Array 사용 방법을 알고 있다면 사용 방법을 알 수 있습니다.
지금은 프로덕션에서 사용하는 사람이 몇 명 뿐이지 만 Twitter, WorkingPoint 및 UserVoice에서도 평가되고 있습니다.
또한 Yehuda
와 함께 Rails 3가 출시 될 때 권장 / 기본값임을 논의하고 있습니다. 일부 기술과 최적화도 곧 DataObjects의 do_mysql
드라이버로 가져올 것입니다.
ActiveRecord 드라이버는 현재 매우 견고해야합니다. 젬을 설치하고 database.yml의 어댑터 이름을 mysql2
로 변경하기 만하면됩니다.
사용에 관심이 있으시면 사용해보십시오. 문제를 발견하면 신속하게 수정 사항을 푸시합니다.)
참조 페이지 https://stackoverflow.com/questions/3001243
'MySql' 카테고리의 다른 글
MySQL 데이터가 잘리는 이유는 무엇입니까? 경고 | 1265 | 열에 대해 잘린 데이터 (0) | 2020.11.20 |
---|---|
MySQL의 열에서 'NOT NULL'을 어떻게 삭제합니까? (0) | 2020.11.20 |
MySQL max_user_connections 대 max_connections (0) | 2020.11.20 |
MySQL 신용 카드 정보를 데이터베이스에 저장하는 모범 사례 (0) | 2020.11.20 |
MySQL Workbench에서 세미콜론이 필요하다고 말하는 이유는 무엇입니까? (0) | 2020.11.20 |
댓글