[RUBY-ON-RAILS] 레일의 캐릭터와 텍스트 사이의 차이점?
RUBY-ON-RAILS레일의 캐릭터와 텍스트 사이의 차이점?
나는 레일을 사용하여 새 웹 응용 프로그램을 만들고 있어요, 그리고 궁금 해서요, 캐릭터와 텍스트 사이의 차이점은 무엇입니까? 그리고 때마다 사용되어야 하는가?
해결법
-
==============================
1.차이는 기호가 쿼리 언어에서 각각의 컬럼 형으로 변환하는 방법에 의존하고있다.
차이는 기호가 쿼리 언어에서 각각의 컬럼 형으로 변환하는 방법에 의존하고있다.
:string | VARCHAR | :limit => 1 to 255 (default = 255) :text | TINYTEXT, TEXT, MEDIUMTEXT, or LONGTEXT2 | :limit => 1 to 4294967296 (default = 65536)
참고:
때마다 사용되어야 하는가?
엄지 손가락의 일반적으로 사용 : 같은 설명과 같은 이상 예상 입력, 코멘트 내용 등을 텍스트 : 짧은 텍스트 입력 (사용자 이름, 이메일, 비밀번호, 제목 등) 사용을위한 문자열
-
==============================
2.당신이 포스트 그레스를 사용하여 텍스트를 사용하는 경우는 크기 제한이 없다면 어디든지 당신이 할 수있는, VARCHAR 대 텍스트의 성능 저하가 없기 때문에
당신이 포스트 그레스를 사용하여 텍스트를 사용하는 경우는 크기 제한이 없다면 어디든지 당신이 할 수있는, VARCHAR 대 텍스트의 성능 저하가 없기 때문에
PostgreSQL의 설명서
-
==============================
3.텍스트를 "텍스트"로 변환하면서 문자열, 데이터베이스에 "대 Varchar"로 변환합니다. 포함 된 VARCHAR가 훨씬 적은 항목을 포함 할 수 있습니다, 텍스트는 (거의) 모든 길이 될 수 있습니다.
텍스트를 "텍스트"로 변환하면서 문자열, 데이터베이스에 "대 Varchar"로 변환합니다. 포함 된 VARCHAR가 훨씬 적은 항목을 포함 할 수 있습니다, 텍스트는 (거의) 모든 길이 될 수 있습니다.
좋은 참조와 심층 분석을 위해 확인 http://www.pythian.com/news/7129/text-vs-varchar/
편집 : 일부 데이터베이스 엔진은 한 번에 VARCHAR로드하지만, 테이블의 저장 텍스트 (및 BLOB) 외부 수 있습니다. 당신이 VARCHAR를 사용하는 경우보다 이름에 대한 텍스트를 사용할 때 SELECT 이름은 제품의 양이 많이 느려질 수 있습니다. 그리고 레일 이후, 기본 부하에 의해 SELECT에 기록 * FROM ... 당신의 텍스트 열이로드됩니다. (조기 최적화는 ...)하지만 이것은 아마, 당신이나 내 응용 프로그램에서 실제 문제가되지 않을 것입니다. 그러나 텍스트를 알고 항상 "무료"아니라는 것을 알고하는 것이 좋다.
-
==============================
4.으로는 그것은 또한 당신이 비계 경우 생성 될 뷰에 영향을 미칠 것입니다 위뿐만 아니라 DB의 데이터 유형을 설명했다. 문자열은 text_field 텍스트가 text_area를 생성합니다 생성합니다
으로는 그것은 또한 당신이 비계 경우 생성 될 뷰에 영향을 미칠 것입니다 위뿐만 아니라 DB의 데이터 유형을 설명했다. 문자열은 text_field 텍스트가 text_area를 생성합니다 생성합니다
-
==============================
5.이 변수 큰 경우 문자열 크기가 고정 된 작은 텍스트 경우. 텍스트 문자열보다 훨씬 더 큰 있기 때문에 중요의 일종이다. 그것은 더 많은 킬로바이트가 포함되어 있습니다.
이 변수 큰 경우 문자열 크기가 고정 된 작은 텍스트 경우. 텍스트 문자열보다 훨씬 더 큰 있기 때문에 중요의 일종이다. 그것은 더 많은 킬로바이트가 포함되어 있습니다.
그래서 작은 필드 항상 문자열 (VARCHAR)를 사용합니다. 필드 좋아합니다. (A 기사 나 게시물의) FIRST_NAME, 로그인, 이메일, 제목 와 텍스트의 예 : 게시물 또는 문서의 내용 / 본체. 단락 등을위한 필드
문자열 크기 1-255 (기본값 = 255)
텍스트 크기 1 4294967296 (기본값 = 65536) 2
-
==============================
6.짧은 필드, 이름처럼, 주소, 전화 번호, 회사에 대한 문자열을 사용
짧은 필드, 이름처럼, 주소, 전화 번호, 회사에 대한 문자열을 사용
큰 내용, 의견, 내용, 단락에 대한 텍스트를 사용합니다.
더 한 줄보다 그것의 무언가, 나는 일반적으로 텍스트 갈 경우 짧은 2-6 단어의 경우 내 일반적인 규칙은, 내가 문자열을 이동합니다.
공식 규칙은 문자열 255입니다. 당신의 문자열이 255 자한다면, 텍스트를 이동합니다.
-
==============================
7.허용 대답은 굉장, 제대로 텍스트 대 문자열 사이의 차이를 설명합니다 (데이터베이스에 대부분 제한 크기는하지만, 몇 가지 다른 개는있다),하지만 난 그 대답은 그것을 통해 저를 얻었다 작은 문제를 지적하고 싶었 완전히 나를 위해 그것을하지 않았다.
허용 대답은 굉장, 제대로 텍스트 대 문자열 사이의 차이를 설명합니다 (데이터베이스에 대부분 제한 크기는하지만, 몇 가지 다른 개는있다),하지만 난 그 대답은 그것을 통해 저를 얻었다 작은 문제를 지적하고 싶었 완전히 나를 위해 그것을하지 않았다.
최대 크기 : 제한 => 1 4294967296로, 내가 갈 -1이 최대 크기에서 필요에 정확히 넣어 작동하지 않았다. 나는 큰 JSON의 모양을 저장하고있어 그들은 미친 거대한 때로는 수 있습니다.
여기에 MySQL은 불평하지 않는 값을 가진 자리에 더 큰 값 내 이동합니다.
한계의 끝에서 주 5 대신 6
class ChangeUserSyncRecordDetailsToText < ActiveRecord::Migration[5.1] def up change_column :user_sync_records, :details, :text, :limit => 4294967295 end def down change_column :user_sync_records, :details, :string, :limit => 1000 end end
-
==============================
8.Oracle을 사용하는 경우 ... STRING은 CLOB로, VARCHAR (255) 열 및 텍스트로 작성됩니다.
Oracle을 사용하는 경우 ... STRING은 CLOB로, VARCHAR (255) 열 및 텍스트로 작성됩니다.
NATIVE_DATABASE_TYPES = { primary_key: "NUMBER(38) NOT NULL PRIMARY KEY", string: { name: "VARCHAR2", limit: 255 }, text: { name: "CLOB" }, ntext: { name: "NCLOB" }, integer: { name: "NUMBER", limit: 38 }, float: { name: "BINARY_FLOAT" }, decimal: { name: "DECIMAL" }, datetime: { name: "TIMESTAMP" }, timestamp: { name: "TIMESTAMP" }, timestamptz: { name: "TIMESTAMP WITH TIME ZONE" }, timestampltz: { name: "TIMESTAMP WITH LOCAL TIME ZONE" }, time: { name: "TIMESTAMP" }, date: { name: "DATE" }, binary: { name: "BLOB" }, boolean: { name: "NUMBER", limit: 1 }, raw: { name: "RAW", limit: 2000 }, bigint: { name: "NUMBER", limit: 19 } }
https://github.com/rsim/oracle-enhanced/blob/master/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb
-
==============================
9.속성이 양식을 사용 문자열에 f.text_field 일치하는 경우,이 f.text_area 사용 텍스트와 일치하는 경우.
속성이 양식을 사용 문자열에 f.text_field 일치하는 경우,이 f.text_area 사용 텍스트와 일치하는 경우.
from https://stackoverflow.com/questions/3354330/difference-between-string-and-text-in-rails by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] OSX의 독불 장군에 설치하지 "보석은 therubyracer -v '0.10.2'설치" (0) | 2020.02.15 |
---|---|
[RUBY-ON-RAILS] 어떻게 고안과 확인 이메일을 설정합니까? (1) | 2020.02.15 |
[RUBY-ON-RAILS] 레일 열 유형에 대한이 문서인가? (0) | 2020.02.15 |
[RUBY-ON-RAILS] 제거 또는 레일 데이터베이스에 루비를 다시 (0) | 2020.02.15 |
[RUBY-ON-RAILS] 브래킷은 무엇인가 [5.1] 액티브 마이그레이션 후 그것이 어떻게 작동합니까? [복제] (0) | 2020.02.14 |