sql >> Databasteknik >  >> RDS >> Mysql

Ruby, Rails:mysql2 pärla, använder någon denna pärla? Är det stabilt?

mysql2 är tänkt som en modernare ersättning för den befintliga mysql pärla, som har varit inaktuell ett tag nu. Jag hörde också att författaren inte stöder det längre och rekommenderar istället alla att använda hans ren-ruby-version eftersom den är kompatibel med fler Ruby-implementeringar (men är mycket långsammare).

Det första problemet med mysql pärla är att den inte gör någon typ av gjutning i C, den ger dig tillbaka rubinsträngar som du sedan måste omvandla till riktiga rubintyper. Att göra det i ren rubin är extremt långsamt och skapar objekt på högen som aldrig behövde existera från början. Och som vi alla vet är Ruby's GC den främsta anledningen till att den är långsam. Så det är bäst att undvika det och göra så mycket i ren C som du kan.

För det andra är att det blockerar hela ruby VM medan du ansluter, skickar frågor och väntar på svar och till och med stänger anslutningen. mysqlplus hjälper definitivt med det här problemet, men bara för att skicka frågor så vitt jag vet.

mysql2 syftar till att lösa dessa problem samtidigt som API:et är extremt enkelt. Eric Wong (författare till Unicorn) har bidragit med några fantastiska patchar som gör nästan allt icke-blockerande och/eller släpper GVL i Ruby. Mysql2::Result klass implementerar Enumerable så om du vet hur man använder en Array vet du hur man använder den.

Jag känner bara till ett fåtal personer som använder det i produktionen just nu, men det utvärderas också på Twitter, WorkingPoint och UserVoice.

Jag för också samtal med Yehuda om att det är rekommenderat/standard för Rails 3 när det skickas. Vissa av dess tekniker och optimeringar kommer också att tas in i DataObjects do_mysql förare snart också.

ActiveRecord-drivrutinen borde vara ganska stabil för tillfället. Allt du behöver göra är att installera ädelstenen och ändra ditt adapternamn i database.yml till mysql2 .

Om du är intresserad av att använda den, prova den. Jag är snabb med att fixa om du hittar några problem;)



  1. Infoga flera objekt i ett ID MySQL från kryssrutan input PHP-formulär

  2. Hur kombinerar man flera kolumner som en och formaterar med anpassade strängar?

  3. ORA-01111 i MRP i fysisk standby-databas

  4. Referensdatamönstret:utbyggbart och flexibelt