336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Image Map

'IT > html_css' 카테고리의 다른 글

white-space 속성값.  (0) 2018.03.29
CSS로 한줄 자르기. 말줄임표.  (0) 2018.03.29
vertical-align 안먹을 때  (0) 2018.02.06
우클릭 막기. 드래그 막기.  (0) 2018.01.30
java json 크로스 도메인(Crossdomain) 우회하기.  (0) 2016.12.26
Posted by 당양부부34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

요타 (yotta) : 1,000,000 000,000,000,000,000,000 = 10^24
제타 (zetta) : 1,000,000,000,000,000,000,000 = 10^21
엑사 (exa) : 1,000,000,000,000,000,000 = 10^18
페타 (peta) : 1,000,000,000,000,000 = 10^15
테라 (tera) : 1,000,000,000,000 = 10^12
기가 (giga) : 1,000,000,000 = 10^9
메가 (mega) : 1,000,000 = 10^6
킬로 (kilo) : 1,000 = 10^3
헥토 (hecto) : 100 = 10^2
데카 (deka) : 10 = 10^1
데시 (deci) : 0.1 = 10^-1
센티 (centi) : 0.01 = 10^-2
밀리 (milli) : 0.001 = 10^-3
마이크로 (micro) : 0.000 001 = 10^-6
나노 (nano) : 0.000 000 001 = 10^-9
피코 (pico) : 0.000 000 000 001 = 10^-12
펨토 (femto) : 0.000 000 000 000 001 = 10^-15
아토 (atto) : 0.000 000 000 000 000 001 = 10^-18
젭토 (zepto) : 0.000 000 000 000 000 000 001 = 10^-21
욕토 (yocto) : 0.000 000 000 000 000 000 000 001 = 10^-24

Posted by 당양부부34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

1. MyISAM

 

  [ 장점 ]
    - 테이블에 ROW COUNT를 가지고 있어 selelct count(*) 쿼리가 빠름.

    - SELECT 빠름.

    - 풀 텍스트 인덱스 지원 : 검색 엔진과 유사한 방법으로 자연 언어를 이용해 특별한 인덱스로 모든 데이터 단어 저장.

 

  [ 단점]

    - row level locking 미지원으로 해당 Table에 Lock 걸림.

    - row 수 증가시 속도 매우 느려짐.

 

  Read Only 기능 많은 서비스에 적합.

2. InnoDB

 

  [ 장점 ]

    - row level locking 지원.

 

  [ 단점]

    - 풀 텍스트 인덱스 미지원

 

  트랜잭션 처리 필요한 대용량 데이터에 유리.

 

3. MyISAM 테이블과 InnodDB 테이블 조인시 충돌 가능.

 

감사합니다.

 

 

출처 : rebeccajo.tistory.com/14

Posted by 당양부부34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

대용량 테이블의 성능에 영향을 줄일 수 있는 10가지 방법


1. MyISAM 대신에 InnoDB를 사용하자. MyISAM은 테이블의 마지막에 insert하는 경우에는 속도가 빠르지만, 테이블 잠금(update 및 delete에 제한 되지만)이 있고, 데이터를 디스크에서 읽기와 쓰기를 할 때 경합 때문에 키 버퍼를 보호하기 위해 싱글락을 사용한다. 또한 후술하겠지만, 체인지 버퍼 기능을 가지고 있지 않다.


2. InnoDB는 유니크하지 않은 보조 인덱스의 빌딩을 지연시키는 체인지 버퍼 기능(이전에 insert buffer라고 불리던 기능)을 가지고 있다. 이에 대한 자세한 것은 Facebook의 노트에 기술되어 있다. 이것은 위의 그래프에는 보여지지 않지만, insert의 성능을 상당히 빠르게하는 것으로, 기본적으로 활성화되어 있다. 이 기능은 MySQL 5.5에서 좋게 개선 되었기 때문에, 만약 업그레이드 하지 않는 경우에는 즉시하는 것이 좋다.


3. 파티셔닝은 인덱스의 크기를 작게하여 테이블 자체를 효율적으로 작게 나눌 수 있게 된다. 또한, MySQL 5.7.2 DMR에서 상당히 개선된 내부적인 인덱스 잠금(index->lock) 경합(contention)도 줄여 준다.


4. InnoDB의 압축 기능을 사용하자. 몇몇 부하 종류의(특별히 많은 char/varchar/text형 컬럼이있는 경우) 압축 기능은 데이터를 압축해 성능 저하의 곡선을 완만하게 해준다. 또한, 일반적으로 용량이 작은 SSD를 사용해도 된다. InnoDB의 압축 기능은 Facebook에서 제공한 여러가지 패치 덕택에 MySQL 5.6에서는 크게 개선 되었다.


5. 정렬후 대용량의 데이터를 테이블에 로드해라. 정렬된 데이터를 인서트하는 것은, 페이지 분할(메모리 상에 없는 테이블에서 성능은 악화되는)이 작게 될 것이고, 대용량 데이터의 로드는 테이블의 용량과는 특별히 관계가 없지만, redo 로그의 압축 부하를 줄여주는데 도움을 준다.


6. 테이블에서 불필요한 인덱스를 지우자. 체인지 버퍼 기능을 비활성화시키는 UNIQUE 키를 특히 주의하자. 제약 조건을 사용할 이유가 없는 경우, UNIQUE 키를 사용하지 않고 일반적인 INDEX를 사용하자.


7. 5, 6에서 관련된 PRIMARY KEY의 종류도 중요하다. 성능 저하를 빠르게 만들어버리는 GUID와 같은 데이터 타입보다, INT나 BIGINT를 사용하자. PRIMERY KEY가 없는 것도 성능에 부정적인 영향을 준다.


8. 새 테이블에 대용량 데이터를 로드할 경우 PRIMARY KEY가 아닌 인덱스는 나중에 만들자. 모든 데이터가 로드된 후 인덱스를 만든다면, InnoDB는 pre-sort와 및 대용량 로드 프로세스(빠르고 인덱스가 좀 더 콤팩트한 인덱스를 만드는)를 적용 할 수 있게 된다. 이 최적화는 MySQL 5.5에서 이루어졌다.


9. 메모리가 많으면 많을수록 도움을 받을 수 있다. 최근의 메모리의 실제 가격을 비교해 보면 새로운 데이터 베이스 서버에 너무 적은 메모리를 적용하는 것을 자주 볼 수 있다. 간단한 조언을 해 보면, SHOW ENGINE INNODB STATUS의 결과에서 BUFFER POOL AND MEMORY의 reads/s의 보여주고(읽고 있음을 나타냄), Free buffers(이것도 BUFFER POOL AND MEMORY 아래에 있다)의 수가 0이면 메모리를 더 늘리면 혜택이 얻을 수 있다.(innodb_buffer_pool_size를 잘 최적화했다는 가정하에. 이 문서를 참고).


10. 메모리 뿐만 아니라, SSD도 도움이 된다. 그래프의 곡선이 하향이 되는 이유는 테이블이 커져서 일어나는 IO 속성 때문이다. 하드 디스크가 초당 200 오퍼레이션(IOPS)을 수행하는데 반해, 일반적인 SSD는 20000 IOPS 이상 수행이 가능하다

'IT > MySQL' 카테고리의 다른 글

Mysql MyISAM과 InnoDB 차이점.  (0) 2021.02.08
MySQL 파일 위치.  (0) 2018.08.16
mysql order by field  (0) 2018.03.29
MyISAM, InnoDB 비교  (0) 2018.01.30
MySQL Object(Stored Procedure, Function) 실행시 접근 문제  (0) 2018.01.17
Posted by 당양부부34

2018. 8. 16. 11:51 IT/MySQL

MySQL 파일 위치.

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

1. 설치 경로.


MySQL에서 디폴트 데이터 디렉터리의 위치는 서버에 컴파일 될 때 정해진다.


[ UNIX  ]

소스 설치 : /usr/local/mysql/var

바이너리 배포 설치 : /usr/local/mysql/data

RPM 설치 : /var/lib/mysql


가 디폴트 설치 경로이다.


[설치된 위치 찾는 법]


  - mysqladmin variables

% mysqladmin variables 

+---------------+-----------------------+ 

| Variable_name     | Value                         | 

+---------------+-----------------------+

| datadir | /usr/local/mysql/var/ |

+---------------+-----------------------+


  - SHOW VARIABLES

mysql> SHOW VARIABLES LIKE 'datadir'; 

+---------------+-----------------------+ 

| Variable_nam      |  Value                        | 

+---------------+---------------------+ | 

datadir               | /usr/local/mysql/var/        | 

+---------------+-----------------------+


감사합니다.

Posted by 당양부부34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

네트워크 패킷 분석 및 모니터링 무료 프로그램에 대해 알아봅시다.


1.WireShark (와이어샤크)


사이트 : https://www.wireshark.org

가장 흔하게 사용됩니다. 괜찮은 성능 보유.


2. Fiddler (피들러)


사이트 : http://www.telerik.com/fiddler

HTTP 모니터링 및 분석 가능. 보안 테스트 시 사용 가능.



3.Angry ip Scanner (앵그리 스캐너)

사이트 : http://angryip.org/

대규모 호스트 확인시 유용.


4.Network Miner (free edtion)

사이트 : http://www.netresec.com/?page=NetworkMiner

프로세스별 통신 모니터링에 유용함.

또한 패킷 분석 가능.


감사합니다.

Posted by 당양부부34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

자바스크립트 한글, 영문, 숫자만 입력 가능 정규표현식.


var reg_hanengnum = /^[ㄱ-ㅎ|가-힣|a-z|A-Z|0-9|\*]+$/;


if (!reg_hanengnum.test(f.mb_nic.value)) {

        alert("닉네임은 한글/영문/숫자만 입력 가능합니다.");

        f.mb_nic.focus();

        return;

}



Posted by 당양부부34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

자바스크립트 이메일 정규식 체크


var reg_email = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;


if (!reg_email.test(f.mb_email.value)) {

        alert("올바른 이메일 주소가 아닙니다.");

        f.mb_email.focus();

        return;

}



Posted by 당양부부34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


javascript 정규식. 영문과 숫자만 가능. 4~20자리까지..



var reg_type1 = /^[A-Za-z0-9+]{4,12}$/; 

if (reg_type1.test(document.getElementById('m_id').value)) {

alert("아이디 조건에 맞지 않습니다.");

}




Posted by 당양부부34
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

정규표현식 사용하기


정규 표현식은 주어진 패턴에 일치하는 문자열을 찾기 위해 하용하는 검색 패턴이다.

RegExp도 리터럴과 객체를 모두 가지고 있다.


정규표현식 패턴은 여는 슬리시와 닫는 슬래시 사이에 기술합니다.

주의할점은 이패턴은 문자열이 아니라는 것이다. 패턴에 작은따옴표나 큰따옴표를 사용하면 안된다.

물론 패턴에 따옴표가 포함되는 경우 예외이다.


정규표현식 특수 문자

문자 

일치 

예제 

 ^ 입력값의 시작 

 /^This/ 는 "This is.." 와 일치 

 $

 입력값의 끝

 /end/는 "This is the end" 와 일치

 *

 0번 이상 반복

 /se*/는 "seeee"와 "se"에 일치

 ?

 0번 또는 1번 반복

 /ap?/는 "apple" 과 "and"에 일치

 + 1번 이상 반복

 /ap+/는 "apple"에는 일치. "apie"에는 불일치

 {n}

 정확히 n번 반복

 /ap{2}는 "apple"에는 일치. "apie"에는 불일치

 {n,} n번 이상 반복

 /ap{2,}는 "apple"과 "apple"의 모든 p에 일치. "apie"에는 불일치

 {n,m}

 최소 n번, 최대 m번 

 /a,p{2,4}/는 "appppppple"의 p 4개에 일치

 .

 줄 바꿈을 제외한 모든문자

 /a,e/는 "ape"와 "axe"에 일치

 [^...]

 대괄호 안의 문자를 제외한

 모든문자

 /a[^px]/는 "ale"에는 일치. "axe"나 "ape"에는 불일치 

 \b

 단어 경계

 /\bno/는 "nono"에서 첫번째 "no"에 일치

 \B

 단어 경계를 제외한 모든문자

 /\Bno/는 "nono"에서 두번째 "no"에 일치

 \d

 0부터 9까지의 숫자

 /\d{3}는 "Now in 123"에서 123에 일치

 \D

 숫자를 제외한 모든문자

 /\D{2,4}/는 "Now in 123" 에서 "Now"에 일치

 \w

 단어 문자(알파벳,숫자,밑줄)

 /\w/는 "javascript"에서 "j"에 일치

 \W

 단어 문자가 아닌 문자
 (알파벳,숫자,밑줄이 아닌 문자) 

 /\W/는 "100%"에서 "%"에 일치

 \n

 줄바꿈 

 \s

 하나의 공백 문자 

 \S

 공백 문자가 아닌 모든 문자 

 \t

 탭 
 (x)

 캡쳐할 괄호

 일치한 문자들 기억

 [...]

대괄호 안의 모든문자 

 /a[px]e/는 "ape" 와 "axe"에 일치. "ale"에는 불일치


2.1 검색하는 문자열이 존재하는 확인하기


Q. 어떤 문자열이 검색하고자 하는 문자열을 포함하고 잇는지 확인하고 싶다.

A.자바스크립트 정규표현식을 사용해서 검색패턴을 정의하고 regExp객체의 test 메서를 사용하면 된다.


var pattern = /Cook.*Book/;

alert(pattern.test("Sam's Cookbook"));


2.2 대소문자를 구분하지 않고 문자열 검색하기


Q. 어떤 문자열에 대소문자를 구분하지 않고 검색하고 싶다.

A. 정규표현식에 대소문자 무시 i 를 사용하면 된다.


var pattern = /Cook.*Book/i;

alert(pattern.test("Sam's Cookbook"));


정규표현식의 플래그

 플래그

의미 
 g 전역 검색, 첫 번째 일치 결과에서 멈추지 않고 전체 문자열에 대해 패턴 검색 

 i 

 대소문자를 구분하지 않음 
 m

 여러줄 문자열에서 시작과 끝을 의미하는 특수 문자(^과$)를 각줄에 적용 


2.3 전화번호 유효성 검사하기

추후 추가예정


2.4 패턴과 일치하는 모든 부분을 찾고 강조하기


Q. 어떤 문자열안에서 패턴과 일치하는 부분을 모두 찾고 싶다.

A. RegExp.exec 메서드를 전역 플래그 g와 함께 사용하면 패턴에 일치하는 모든 부분을 찾을수 있다.


var searchString  = "Now is the time and this is the time and that is the time";

var pattern = /t\w*e/g;

var matchArray;


var str = " ";

while((matchArray = pattren.exec(searchString)) != null){

  str += "at "+matchArray.index + "we found " + matchArray[0] + "<br/>";

}


alert(str);


RegExp 객체의 exec 메서드는 정규표현식을 실행하여 일치하는 부분이 없으면 null을 반환하고, 일치하는 부분이 있은 배열을 반환한다. 반환된 배열에는 실제로 일치하는 값, 인덱스, 일치하는 괄호 부분 문자열, 원래의 문자열이 포함되어 있다.

    index : 일치하는 부분 인덱스
  • input : 원래 입력한 문자열
  • [0]또는 배열에 직접 접근 : 일치하는 값
  • [1]...[n] : 일치하는 괄호 부분 문자열


2.5 패턴을 새로운 문자열로 치환하기


Q. 패턴에서 일치하는 부분 문자열을 다른 문자열로 치환하고 싶다.

A. String 객체의 replace 메서드를 정규표현식과 함께 사용하면 된다.


var searchString  = "Now is the time and this is the time and that is the time";

var pattern = /t\w{2}e/g;

var replacement = searchString.replace(re,"place");

alert(replacement); // Now is the place, this is the place


전역 플래그 g가 설정된 정규표현식을 String 객체의 replace 메서드와 함께 사용하면 검색된 문자열을 모두 다른 문자열로 치환할 수 있다.


2.6 캡처 괄호를 사용하여 문자열 안의 단어 교환하기


Q. 이름과 성의순서로 입력된 문자열에서 성이 앞에 나오도록 수정하고 싶다.

A. 캡처 괄호와 정규표현식을 사용하여 문자열 안에서 두 개의 이름을 찾아서 기억한 후 그들의 위치를 서로 교환하면된다.


var name = "Abe Lincoln";

var re = /^(\w+)\s(\w+)$/;

var newname = name.replace(re,"$2, $1");


캡처 괄호를 사용하면 문자열 안에서 특정 패턴을 찾을수 있을 뿐만아니라 이우에 찾은 부분 문자열을 참조 할수 있다. 검색된 문자열은 왼쪽부터 오른쪽으로 번호가 매겨지고 참조되어 String 객체의 replace 메서드에서 '$1' 과 '$2'로 사용할 수 있다.


정규 표현식은 공백으로 구분된 두단어를 검색한다. 캡처 괄호는 두단어에 사용되었으므로 이름은 $1을 ,성은 $2 를 사용해서 접근 할 수 있다.


캡처 괄호는 String 객체의 replace 메서드에서만 사용할 수 있는 특수 문자가 아니다. 정규표현식과 replace 메서드에 사용할 수 있다.


특수 문자표


 패턴목적 
 $$

 치환시 달러 문자($)허용

 $& 검색한 부분 문자열 삽입 

 $'

 일치한 부분 바로 앞까지의 문자열

 $' 일치한 부분 바로 뒤부터의 문자열
 $n

 RegExp를 사용할 때 n번째 캡처된 괄호값 삽입



2.7 정규표현식을 사용해서 양끝 공백 제거하기


Q. Ajax를 호출해서 문자열을 서버로 전송하기 전에 문자열 시작과 끝 부분의 공백을 제거 하고 싶다.

A. ECMAScript 5 이전에는 정규표현식을 사용해서 문자열 시작과 끝 부분의 공백을 제거 했습니다.


//old version

var testString = "  This  is the string ";

testString = testString.replace(/^\s+/,""); // 문자열 시작 부분의 공백 제거

testString = testString.replace(/\s+$/,""); // 문자열 끝 부분의 공백 제거


//new version

testString = testString.trim(); // 공백이 제거된 문자열


2.8 HTML 태그를 명명된 엔티티로 치환하기


Q. 마트업 예제를 웹페이제 붙여 넣되, 마크업을 이스케이프하여 콘텐츠를 해석하지 않고 꺽은 괄호(<>)를 그대로 출력해야 한다.

A. 정규표현식을 사용하여 꺽은 괄호를 명명된 엔티티 &lt; 와 &gt; 로 바꾸면된다.


var pieceOffHtml = "<p>This is a <span>paragraph</span></p>";

pieceOffHtml  = pieceOffHtml.replace(/</g,"&lt");

pieceOffHtml  = pieceOffHtml.replace(/>/g,"&lt");


2.9 특수 문자 검색하기


Q. 지금까지는 숫자와 문자 그리고 숫자나 문자가아닌 것들을 검했다. 이번에는 정규표현식 문자 그자체를 검색 한다.

A. 백슬래시를 사용하여 패턴 검색 문자를 이스케이프 하면된다.


var re = /\\d/;

var pattern = "\\d{4}";

var pattern2 = pattern.replace(re,"\\D");


숫자를 검색하는 특수 문자 \d에 대응하도록 정규표현식을 만들었습니다. 문자열 안에서 검색하기 위해 패턴을 이스케이프했다. 그후 숫자 특수 문자는 숫자가 아닌 것을 검색하는 특수 문자 \D로 치환 되었다.


출처 : http://icoon22.tistory.com/220

Posted by 당양부부34

블로그 이미지
주요 토렌트를 블로깅하고 있습니다. 토렌트 순위 등은 다른 사이트를 찾아보세요. 주요 웹툰 순위도 게재했어요 경제를 좋아하는 일산의 행복한 프로그래머입니다.
당양부부34
Yesterday
Today
Total

달력

 « |  » 2024.3
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함