MySQL은 이미 사용하기에 충분히 빠르지만 컴파일 방법을 바꿈으로서 더 빠르게 할 수도 있습니다. 이미 알아본 바와 같이 MySQL을 공유 라이브러리를 이용하여 컴파일하지 않고 정적으로 컴파일 하면 약 11% 정도의 성능 향상이 있다고 합니다. 하지만 필자가 회사의 MySQL을 정적으로 컴파일 해본 결과 11%보다 훨씬 빠르게 작동하는 것을 확인할 수 있었습니다. 정확하게 몇 %의 성능 향상이 있는지는 모르지만, 눈에 띄게 빨라졌습니다.
대부분이 웹과 연동을 하기 위하여 MySQL을 사용할텐데 웹 사이트에서 MySQL을 얼마나 자주 사용하느냐에 따라서 웹 사이트의 속도를 크게 향상 시킬 수 잇을 것이라 생각됩니다. 다음의 configure 옵션은 MySQL을 정적으로 컴파일 하는 방법입니다. 직접 MySQL을 정적으로 컴파일해 보고 성능 비교를 해 보기 바랍니다. 단 공유 라이브러리를 사용할 때보다 메모리를 약간 더 사용할 수도 있습니다.
shell> ./configure --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static
--- p.222
필자가 MySQL을 처음 사용했을 때는 관련 자료도 부족했을 뿐만 아니라 필자가 데이타 베이스를 전혀 모르던 때라 고생이 이만저만이 아니었습니다. MySQL을 어느정도 사용하는 실력이 된 후로는 필자처럼 처음부터 고생하는 초보자를 위하여 통신 동호회에 강좌를 개설하고, 홈메이지를 만들어 올리기도 하고, 잡지에 기고하거나 게시판에 올라온 질문에 대한 답변을 하게 되엇습니다.
--- 머리말 중에서
데이터란 무엇인가
가장 먼저 알아야 하는 것은 저장된 데이터입니다. 데이터베이스의 가장 기본이 되는 의미라고 할 수 있습니다. 지금 각자의 휴대폰을 켜봅시다. 그리고 휴대폰을 이용해 친구들의 전화번호를 알아내 봅시다. 휴대폰을 이용해 친구들의 전화번호를 쉽게 검색해서 통화할 수 있는 것도 이 휴대폰이라는 작은 컴퓨터 안에 친구들의 전화번호가 데이터베이스로 저장되어 있기 때문에 사용자가 자신이 원하는 정보를 휴대폰의 데이터베이스로부터 얻어낼 수 있는 것입니다.
통합 데이터와 운영 데이터를 구별하자
데이터베이스에서는 같은 데이터가 중복되어 저장되지 않습니다. 이를 가리켜 통합 데이터라고 합니다. 데이터가 중복되면 DB에 수많은 데이터가 쌓여 더욱더 불편을 초래합니다. 휴대폰에 한 친구의 전화번호를 계속 중복해서 저장시켜놓았다고 생각해 봅시다. 한 번만 저장하면 될 친구의 전화번호를 여러 번 중복해서 저장시켜 놓음으로써 다른 친구의 번호를 저장할 수도 없을 뿐더러 사용자가 사용하기에도 불편을 느끼게 될 것입니다.
그럼 이런 의문이 생길 수도 있습니다. 실제 휴대폰에는 한 친구의 번호가 중복해서 저장되는데요? 그러나 그런 경우에도 사용자가 저장할 메모리 번지의 숫자는 틀리게 됩니다. 즉 여기서 말한 통합 데이터는 정확히 같은 데이터의 중복을 뜻합니다. 즉 하나의 메모리 번지에는 하나의 데이터만 저장되는 것을 뜻하는 것이죠. 하지만 어느 경우에는 효율적인 데이터의 활용을 위하여 중복을 허용하기도 하는데 어느 조직이든 필요한 데이터가 있기 마련입니다. 이러한 데이터를 운영 데이터라고 합니다. 따라서 데이터베이스는 단순한 데이터의 집합이 아닌 해당 조직에 없어서는 안 될 유용한 데이터의 집합이라 할 수 있습니다.
공용 데이터란 무엇인가?
데이터베이스는 공용 데이터입니다. 이는 여러 응용 시스템이 공동으로 이용하기 때문입니다. 즉 여러 사용자가 서로 다른 목적을 가지고 하나의 데이터베이스의 데이터를 이용한다는 것입니다. 이와 같이 데이터베이스는 여러가지의 의미를 내포하고 있습니다.
앞에서 데이터 베이스의 네 가지 의미를 살펴보았습니다. 여기에서 가장 중요한 요점은 데이터베이스는 끊임없이 변화한다는 것입니다. 저장되고 갱신되고 또 저장되고 갱신되고, 만약 데이터베이스를 변경할 수 없다면 새로운 정보를 컴퓨터에 입력할 수도 없을뿐더러 휴대폰에서 미운 친구의 전화번호를 지워버리고 새로운 친구의 전화번호를 입력할 수도 없습니다.
또한 데이터베이스를 변경하지 않는다면 아무리 이사를 가더라도 몇십 년 전 그대로의 집 주소가 컴퓨터에 출력되어 나타날지도 모릅니다. 데이터베이스가 변하지 않는 세상, 상상만으로도 끔찍하지 않습니까?
--- p.84~85
데이터란 무엇인가
가장 먼저 알아야 하는 것은 저장된 데이터입니다. 데이터베이스의 가장 기본이 되는 의미라고 할 수 있습니다. 지금 각자의 휴대폰을 켜봅시다. 그리고 휴대폰을 이용해 친구들의 전화번호를 알아내 봅시다. 휴대폰을 이용해 친구들의 전화번호를 쉽게 검색해서 통화할 수 있는 것도 이 휴대폰이라는 작은 컴퓨터 안에 친구들의 전화번호가 데이터베이스로 저장되어 있기 때문에 사용자가 자신이 원하는 정보를 휴대폰의 데이터베이스로부터 얻어낼 수 있는 것입니다.
통합 데이터와 운영 데이터를 구별하자
데이터베이스에서는 같은 데이터가 중복되어 저장되지 않습니다. 이를 가리켜 통합 데이터라고 합니다. 데이터가 중복되면 DB에 수많은 데이터가 쌓여 더욱더 불편을 초래합니다. 휴대폰에 한 친구의 전화번호를 계속 중복해서 저장시켜놓았다고 생각해 봅시다. 한 번만 저장하면 될 친구의 전화번호를 여러 번 중복해서 저장시켜 놓음으로써 다른 친구의 번호를 저장할 수도 없을 뿐더러 사용자가 사용하기에도 불편을 느끼게 될 것입니다.
그럼 이런 의문이 생길 수도 있습니다. 실제 휴대폰에는 한 친구의 번호가 중복해서 저장되는데요? 그러나 그런 경우에도 사용자가 저장할 메모리 번지의 숫자는 틀리게 됩니다. 즉 여기서 말한 통합 데이터는 정확히 같은 데이터의 중복을 뜻합니다. 즉 하나의 메모리 번지에는 하나의 데이터만 저장되는 것을 뜻하는 것이죠. 하지만 어느 경우에는 효율적인 데이터의 활용을 위하여 중복을 허용하기도 하는데 어느 조직이든 필요한 데이터가 있기 마련입니다. 이러한 데이터를 운영 데이터라고 합니다. 따라서 데이터베이스는 단순한 데이터의 집합이 아닌 해당 조직에 없어서는 안 될 유용한 데이터의 집합이라 할 수 있습니다.
공용 데이터란 무엇인가?
데이터베이스는 공용 데이터입니다. 이는 여러 응용 시스템이 공동으로 이용하기 때문입니다. 즉 여러 사용자가 서로 다른 목적을 가지고 하나의 데이터베이스의 데이터를 이용한다는 것입니다. 이와 같이 데이터베이스는 여러가지의 의미를 내포하고 있습니다.
앞에서 데이터 베이스의 네 가지 의미를 살펴보았습니다. 여기에서 가장 중요한 요점은 데이터베이스는 끊임없이 변화한다는 것입니다. 저장되고 갱신되고 또 저장되고 갱신되고, 만약 데이터베이스를 변경할 수 없다면 새로운 정보를 컴퓨터에 입력할 수도 없을뿐더러 휴대폰에서 미운 친구의 전화번호를 지워버리고 새로운 친구의 전화번호를 입력할 수도 없습니다.
또한 데이터베이스를 변경하지 않는다면 아무리 이사를 가더라도 몇십 년 전 그대로의 집 주소가 컴퓨터에 출력되어 나타날지도 모릅니다. 데이터베이스가 변하지 않는 세상, 상상만으로도 끔찍하지 않습니까?
--- p.84~85