Mysql
 sql >> база данни >  >> RDS >> Mysql

Ruby, Rails:mysql2 gem, някой използва ли този скъпоценен камък? Стабилен ли е?

mysql2 е замислен като по-модерен заместител за съществуващия mysql скъпоценен камък, който е остарял от известно време. Също така чух, че авторът вече не го поддържа и вместо това препоръчва на всеки да използва неговата чисто ruby ​​версия, тъй като е съвместима с повече реализации на Ruby (но е много по-бавно).

Първият проблем с mysql gem е, че не прави никакви типове кастинг в C, той ви връща рубинови низове, които след това трябва да преобразувате в правилните типове рубин. Правенето на това в pure-ruby е изключително бавно и създава обекти в купчината, които никога не са имали нужда да съществуват на първо място. И както всички знаем, GC на Ruby е основната причина за неговата бавност. Затова е най-добре да го избягвате и да правите колкото можете повече в чист C.

Второто е, че блокира цялото ruby VM, докато се свързвате, изпращате заявки и чакате отговори и дори затваряте връзката. mysqlplus определено помага с този проблем, но само за изпращане на заявки, доколкото знам.

mysql2 има за цел да реши тези проблеми, като същевременно поддържа API изключително прост. Eric Wong (автор на Unicorn) е допринесъл с някои страхотни пачове, които правят почти всичко неблокиращо и/или освобождават GVL в Ruby. Mysql2::Result класът прилага Enumerable, така че ако знаете как да използвате масив, вие знаете как да го използвате.

В момента знам само за няколко души, които го използват в производството, но се оценява и в Twitter, WorkingPoint и UserVoice.

Аз също преговарям с Yehuda за това е препоръчителното/по подразбиране за Rails 3, когато се доставя. Някои от неговите техники и оптимизации също ще бъдат въведени в do_mysql на DataObjects скоро и шофьор.

Драйверът ActiveRecord трябва да е доста солиден в момента. Всичко, което трябва да направите, е да инсталирате gem-а и да промените името на вашия адаптер в database.yml на mysql2 .

Ако проявявате интерес да го използвате, опитайте го. Бързо ще пусна корекции, ако откриете някакви проблеми;)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jdbc към MYSQL грешка:Не е намерен подходящ драйвер за jdbc:mysql://localhost:3306/test?user='root'&password=''

  2. MySQL реализация на алгоритъм за прехвърляне на лъчи?

  3. PHP/MYSQL Присъединете няколко таблици

  4. #1139 - Получих грешка „операнд за повторение невалиден“ от регулярния израз

  5. MySQL единичен израз за сливане на две таблици