Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

author
message
[Level:0]quartex

Post subject: UTF8 Support

registered: 05/31/2011

IP: *.31.149.83

views: 42

Hi,
I search in the documentaion but I do not find if utf8 character is supported and in which object (table like Mysql or database like oracle)
Any help please ?

Thanks a lot for all

Quote
[Level:3]eye

# Post subject:Re: UTF8 Support

profile

registered: 05/31/2011

IP: *.130.102.218

Hi quartex!

I am writing you the second time. Accidently closed the window, and everything is gone!

The answer to your questions is Yes. You can store whatever data you have in CUBRID tables, even your data in UTF-8 encoding. In fact, CUBRID server does not care which character set you use, because it stores the data, reads the data, and compares the data in bytes. CUBRID server sees only bytes. CUBRID server accepts whatever character set you define in your client application which connects to CUBRID server. This is implemented to increase the database performance.

For example, if you are using CUBRID Manager as your database administration tool, you can set the character set here: CUBRID Manager -> Action -> Properties -> Query Options -> Character set. Here you chose UTF-8. This will tell CUBRID Manager that all you data now on will be processed in UTF-8 encoding.

Another important thing, assume you want to create a table in your CUBRID database where you want to store the first name text. First, you create a column for that text data. Second, usually you have to indicate the maximum length of your text. Let's suppose the first name can have maximum 20 characters (really weird case, though). BUT.... you do not set the length as 20. Remember, CUBRID sees only bytes, which means that some multi-byte characters in UTF-8 may occupy 1, or 2, or even 3 bytes (Asian characters). So, since you do not know who will be your service user Chinese, Japanese, or Brazilian, for your safety you'd better set the length as 60 bytes (= 20 characters x 3 bytes each). Then for sure you will not run into "Data Overflow coercing" error.

The last thing you have to bear in mind when dealing with the character set is the way how CUBRID compares the data. CUBRID stores, retrieves, and compares the data in bytes. So, when you want to store the text with multi-byte characters, set YES to single_byte_compare=yes (the default is NO) in the cubrid.conf file in the ~CUBRID/conf directory. Otherwise, CUBRID server will try to compare in two or three bytes and will return the different result.

Quote
[Level:0]quartex

# Post subject:Re: UTF8 Support

profile

registered: 05/31/2011

IP: *.31.149.83

Thanks you eye for your clear answer.
I'm a DBA in a Hosting Provider with more 100 Mysqls installation and I'm searching an eventually easy replacement for this. I'm waiting for Cubrid version 3 to understand better the Mysql compatibility.
Thnak you again

Quote
[Level:3]eye

# Post subject:Re: UTF8 Support

profile

registered: 05/31/2011

IP: *.130.102.218

Hi quartex,

What a coincidence! Actually, these days I am preparing a case study on Hosting Companies who use CUBRID as their database server. We have two large hosting companies who installed and use CUBRID on their servers already two years.

So, in the meantime while I am preparing the case, feel free to send me any questions related to your hosting service. Maybe you wish to know something other than technical issues. I will make every endeavor to assist you with deploying CUBRID on your servers. Finally, it's a community release. In turn you will drive more users to YOUR hosting service. You know what, if you think to start providing CUBRID hosting, I can even place your company logo and your "story" (how did you come up to use CUBRID and why, etc). You will be officially promoted at our community page at http://cubrid.org as a CUBRID hosting provider and our partner. What do you think about that?

Quote
[Level:0]quartex

# Post subject:Re: UTF8 Support

profile

registered: 05/31/2011

IP: *.31.149.83

Hi eye,
why not ?
After release of version 3 and testing it for mysql compatibility, I email you for more information about "us migration story".
Only 2 more questions about cubrid :
1) is it possible to limit cpu share for each user in new version (or is it planned to do it). This is the major problem with mysql in shared enviroment, do you have more information on other cubrid's hosters solve this kind of problem ?
2) a release date for ver 3 ? (is it available a beta version ?)

Thank you very much

Quote
[Level:3]eye

# Post subject:Re: UTF8 Support

profile

registered: 05/31/2011

IP: *.130.102.218

Hi quartex,

That sound really great! The most important is your intention! Everything starts from that point!

Here is what I have for you:

1. CUBRID currently does not have CPU sharing capabilities, since our goal is to optimize it for Web usage. We currently stress on other DB compatibility like MySQL Compatibility, so that users do not need to rewrite their queries and functions. We also emphasize on the performance. For instance, CUBRID's SELECT statements are processed from x2 to x6 times faster than other databases. Our goal is to provide better compatibility and higher performance. Other features like CPU sharing are on the second TODO list. But we will definitely take it into our account once we reach the target goal.

In the case of Hosting companies who use CUBRID, what they do is only limit the volume size for the user databases. CUBRID provides unlimited number of tables and table space, so DBAs can limit only the size of the users databases.

There is one more thing. CUBRID creates one server process per each database, and each process is controlled by the Operating System. So, if you are using Linux, it's pretty famous for its balancing the processes evenly. The same applies for Windows, actually. But Linux performs better. So, I believe, there should be any problem with the CPU consumption as we can see from the Hosting companies who already deploy CUBRID.

2. CUBRID 2008 R3.0 is planned for July. It's almost done, we started to test it and run QA. So, I will notify you directly when we build the final release. In the meantime look around our CUBRID Manual and CUBRID Wiki for the documentation. You will find lots of interesting materials.

Quote




You are either using a very old browser or a browser that is not supported.
In order to browse cubrid.org you need to have one of the following browsers:



Internet Explorer: Mozilla Firefox: Google Chrome: