Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Ruby, Rails:mysql2 gem, czy ktoś używa tego klejnotu? Czy jest stabilny?

mysql2 ma być bardziej nowoczesnym zamiennikiem dla istniejącego mysql klejnot, który już od jakiegoś czasu jest nieświeży. Słyszałem również, że autor już go nie wspiera i zamiast tego zaleca wszystkim korzystanie z jego wersji w czystym Ruby, ponieważ jest ona kompatybilna z większą liczbą implementacji Rubiego (ale jest dużo wolniej).

Pierwszy problem z mysql gem jest to, że nie wykonuje żadnego rzutowania typów w C, daje ci z powrotem łańcuchy rubinowe, które następnie musisz przekonwertować na odpowiednie typy ruby. Robienie tego w przypadku czystego rubinu jest niezwykle powolne i tworzy na stosie obiekty, które nigdy nie musiały istnieć. Jak wszyscy wiemy, GC Ruby jest głównym powodem jego powolności. Najlepiej więc tego unikać i robić jak najwięcej w czystym C.

Po drugie, blokuje całość ruby VM podczas łączenia, wysyłania zapytań i oczekiwania na odpowiedzi, a nawet zamykania połączenia. mysqlplus zdecydowanie pomaga w tym problemie, ale tylko do wysyłania zapytań, o ile wiem.

mysql2 ma na celu rozwiązanie tych problemów przy zachowaniu niezwykle prostego interfejsu API. Eric Wong (autor Unicorn) dostarczył kilka niesamowitych łatek, które sprawiają, że prawie wszystko nie blokuje się i/lub udostępnia GVL w Ruby. Mysql2::Result klasa implementuje Enumerable, więc jeśli wiesz, jak używać tablicy, wiesz, jak jej używać.

Wiem, że tylko kilka osób używa go teraz w produkcji, ale jest on również oceniany na Twitterze, WorkingPoint i UserVoice.

Rozmawiam też z Yehuda o tym, że jest to zalecane/domyślne dla Rails 3, gdy jest dostarczane. Niektóre z jego technik i optymalizacji zostaną również wprowadzone do do_mysql DataObjects wkrótce również kierowca.

Sterownik ActiveRecord powinien być w tej chwili całkiem solidny. Wszystko, co musisz zrobić, to zainstalować gem i zmienić nazwę adaptera w database.yml na mysql2 .

Jeśli chcesz go użyć, spróbuj. Szybko wprowadzam poprawki, jeśli znajdziesz jakieś problemy;)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sequelize:pola Concat w klauzuli WHERE LIKE

  2. Obsługa ograniczenia klucza obcego w Rails

  3. BŁĄD 1044 (42000):Odmowa dostępu dla użytkownika „@”localhost” do bazy danych „db”

  4. Różnice między MySQL i SQLite w SQL

  5. mysql kolejność według liczby wydajności