tatamilab.jp
Open Geospatial Consortium (OGC) は、空間データを管理するあらゆる種類のアプリケーションで役立つ、公的に利用可能な概念的ソリューションの開発に携わっている 250 以上の企業、機関、および大学の国際的なコンソーシアムです。 空間データをサポートするように SQL RDBMS を拡張するための複数の概念的な方法を提案したドキュメントとして、Open Geospatial Consortium から「OpenGIS® Implementation Standard for Geographic information - Simple feature access - Part 2: SQL option」が発行されています。この仕様書は、OGC Web サイト (http://www.opengeospatial.org/standards/sfs) から入手
以下のようなピタゴラスの定理を使った指定した経度緯度に最も近いデータを取得するSQLは結構ありがちですが、CPU負荷が高く効率も悪いのでMySQLに標準搭載となった空間情報(geometry)を使ってみることにします。 SELECT * FROM loc ORDER BY power(abs(latitude - 緯度 ), 2) + power(abs(longitude - 緯度 ), 2) LIMIT 1 MySQLの空間情報(geometry)機能はPostGIS(Postgresカスタマイズ)に比べると貧弱なので、その為の工夫を行います。例えばここのとおりのままだと逆にSQLが遅くなります。 まずは、テーブル定義から 通常のテーブル CREATE TABLE IF NOT EXISTS `loc` ( `loc_id` int(11) NOT NULL auto_incremen
整数型 (真数値) - INTEGER、INT、SMALLINT、TINYINT、MEDIUMINT、BIGINT
波ダッシュ、全角チルダ、全角ハイフン、半角ハイフンが、「?」になる、文字化けする。 そんなMySQL文字化けの確認。 UTF-8の入力があって、EUCのデータベースに入れる…などの場合に文字コード変換が必要。これをMySQLに任せるか、phpで対応するかが問題。 サンプルコード <?php //こんな文字列を用意する。文字コードはUTF-8。 $s = '全角マイナス[-]半角マイナス[-]全角ダッシュ[―]全角ハイフン[‐]波ダッシュ[~]半角チルダ[~]全角チルダ[〜]'; //あるサーバーのデータベースtestにて実験 mysql_connect('localhost', 'root'); mysql_select_db('test'); //default charset = utf8 のテーブル、ujis のテーブルを作る mysql_query("drop table if e
FC2ブログからMT5.2.7に引っ越す このブログも開発継続する気ないので引っ越… 開拓日誌ブログ上 me | コメント(0) Vyatta 6.6R1でやったーぶいっv もうルータ買わない!… 開拓日誌ブログ上 me | コメント(0) PHP 5.5の新機能 最近ぜんぜん注視してなかったけど、センス… 開拓日誌ブログ上 me | コメント(0)
(Last Updated On: )MySQLには文字エンコーディングを変更する「SET NAMES」SQL文が用意されています。(PostgreSQLも同様のSQL文、SET CLIENT_ENCODINGがあります)この機能はSQLコンソールからは使ってよい機能ですが、アプリケーションからは使ってはならない機能です。SQLインジェクションに脆弱になる場合があります。 Ruby on Railsの本を読んでいて、ActiveRecordを説明している部分にMySQLの文字エンコーディングを変更する場合の例としてSET NAMESが利用されていました。アプリケーションからはSET NAMESは使ってはならない事を周知させるのは結構時間が必要かなと思いました。 PHPも5.2の途中からMySQLモジュールにlibmysqlの文字エンコーディング設定APIのラッパー関数が追加されていたりする
FC2ブログからMT5.2.7に引っ越す このブログも開発継続する気ないので引っ越… 開拓日誌ブログ上 me | コメント(0) Vyatta 6.6R1でやったーぶいっv もうルータ買わない!… 開拓日誌ブログ上 me | コメント(0) PHP 5.5の新機能 最近ぜんぜん注視してなかったけど、センス… 開拓日誌ブログ上 me | コメント(0)
補足 この記事は旧徳丸浩の日記からの転載です。元URL、アーカイブ、はてなブックマーク1、はてなブックマーク2。 備忘のため転載いたしますが、この記事は2010年7月1日に公開されたもので、当時の徳丸の考えを示すものを、基本的に内容を変更せずにそのまま転載するものです。 補足終わり PHPのデータベース・アクセス・ライブラリPDOは、DB接続時の文字エンコーディング指定ができないため、文字エンコーディングの選択によっては、プレースホルダを使っていてもSQLインジェクション脆弱性が発生します。 追記(2011/06/19) ここに来て急にブクマが追加されはじめていますが、このエントリを書いてから状況が改善しています。PHP5.3.6(2011/03/17)にて、PDOでもデータベース接続の文字エンコーディングを指定できるようになりました。この版で、UNIX版のPHPでは解決しましたが、Win
どこまで出来るか?!やれるところまでやってやるぜ!!と、威勢が良いのは若い間だけの話。オトナのオトコは、攻めるときはとことん攻めるが自らの限界もわきまえて賢く振る舞うのがスマートってものである。というわけで、今日はMySQLのいろいろな限界についてまとめてみる。皆さんも是非MySQLの限界を知り、MySQLをもっとスマートに使って頂きたい。 SQL文の最大長 MySQLサーバーが実行出来るSQL文の最大長は、max_allowed_packetシステム変数で表される。max_allowed_packetの最大値は1GBである。max_allowed_packetの値はセッションごとにも設定可能なので、デフォルトではそこそこの値(16MBなど)に設定しておいて、必要に応じて大きな対を使うと良いだろう。 データベースの個数 データベースオブジェクトの個数に制限はない。データベースオブジェクトは
© 1995-2008 MySQL AB, 2008-2009 Sun Microsystems, Inc. 先週末にリリースされた MySQL 5.1.38 において、InnoDB のプラグイン化がされたそうなので、試してみました。且つ覚書的な。 試してみた環境 OS バージョン CentOS release 5.3 (Final) MySQL バージョン MySQL 5.0.45 Cent OS 5.3 ですが、MySQL :: MySQL 5.1 GA から Red Hat Enterprise Linux 5 RPM (x86) 版をダウンロード。 とりあえず、Server, Client, Shared libraries, Headers and libraries の4つ。 rpm -Uvh MySQL-client-community-5.1.38-0.rhel5.i38
X25-M、SSDで検索してくる方が非常に多いので、本ブログ内のSSD関連記事をリストしておきます。 MySQLのベンチマークを用いたIntel X25-M SSDの評価 (2009/03/25) SSDの真の性能を引き出す MySQL 5.1.38 InnoDB Plugin (本記事) MySQL 5.1.38から本体に同梱されるようになった、InnoDB Pluginの性能検証結果です。前回ご紹介したようにInnoDB Pluginには以下の強化点がありますが、本日はこのうちバックグラウンドI/Oスレッドの増加に焦点を当ててみたいと思います。 高速なインデックス作成。従来InnoDBのCREATE INDEXはテーブルの再作成を伴っていました テーブルとインデックスの圧縮 (検証結果その1、その2) INFORMATION_SCHEMAによるロック競合の検出 (検証結果) CPUスケ
出ました。今回は機能の追加・変更が4件、バグ修正が62件あります。 MySQL 5.1.38から同梱されるようになったInnoDB Pluginですが、MySQL 5.1.41ではバージョンが1.0.5に上がり、ついにRC(リリース候補版)となりました。再掲になりますがInnoDB PluginはビルトインのInnoDBに比べて以下のような機能強化が施されており、非常に有用性の高いものです。そろそろ利用を検討しても良い時期に入ってきたのではないかと思います。 高速なインデックス作成。従来InnoDBのCREATE INDEXはテーブルの再作成を伴っていました テーブルとインデックスの圧縮 (検証結果その1、その2) INFORMATION_SCHEMAによるロック競合の検出 (検証結果) CPUスケーラビリティの向上 (1.0.3から) バックグラウンドI/Oスレッドの増加 (1.0.4か
日本時間の今日、InnoDB Pluginの新バージョン1.0.4がリリースされました。このバージョンでは、「バイナリログを有効にするとグループコミットが効かなくなる問題」が修正されています。ほとんどの環境にとって極めて効果の高い修正です。ほかにもI/Oスレッドの多重化(同様のものがMySQL5.4にも搭載)など効果的な修正が行なわれています。 InnoDB PluginはまだGA(安定版)ではないので、品質面では標準搭載されているInnoDBよりも落ちます。ただしMySQL Enterpriseサブスクリプションを買っている方であれば追加費用無しでInnoDB Pluginのサポートを受けることができるので、お気軽に試してみて頂ければと思います。 グループコミット問題修復の効果のほどは、一目瞭然なので図を見た方が分かりやすいでしょう。下図は、mysqlslapで、複数のコネクションから並
先週、MySQL Conference & Expo 2010が開催され、盛況のうちに終了した。カンファレンスに合わせる形で、MySQL 5.5.3および5.5.4がリリースされたのだが、これが目を見張るような進化を遂げている。特に性能面での進化には目を見張るものがある!Jeremy ZawodnyやMark Calleghanといったコミュニティの重鎮たちも「非常にエキサイティングなリリースだ!」などと表して歓迎の意を表している。 というわけで、本日はMySQL 5.5.3/5.5.4の新機能および変更点についてレビューしてみよう! おさらい。 〜 MySQL 5.5の既存の機能 〜MySQL 5.5が登場したとき、その新機能については以前にもエントリで紹介したが、ここで改めておさらいしてみよう。MySQL 5.5は、正確にいうと現在最新バージョンであるMySQL 5.1の「次の次」のバ
MySQL 5.5.3-m3 ではたくさんのオプションやコマンドなどが廃止となりました。もともと非推奨(obsolete)されていたものですが手に馴染んでいたものも多く、しばらくは使いながら混乱することでしょう。 ひとつ前の日記で宣言したとおり、以下に変更点を整理しておきます。情報量としては基本的にリリースノートと同じです(リリースノートの抜き書きです)が、こちらのほうが少しは見やすくなっているかな、、、見やすくなっていたらいいな、、、と思います。 廃止されるシステム変数 代わりに使う変数 log_bin_trust_routine_creators log_bin_trust_function_creators myisam_max_extra_sort_file_size - record_buffer read_buffer_size sql_log_update - table_t
現在米国サンタクララで開催中の MySQL Conference & Expo 2010 に合わせてか、 MySQL 5.5 の最新版が2つ同時に公開されました。 MySQL 5.5 シリーズは現在マイルストンリリース(ベータレベルだと思ってよいでしょう)が行われているバージョンで、 続々最新の機能が追加されています。 ダウンロードはこちらから: http://dev.mysql.com/downloads/mysql/5.5.html MySQL 5.5.4-m3 では、InnoDB Plugin のバージョンが 1.1 になりました。 このバージョンは現時点では Linux x86_64 用バイナリとソースコードのみが公開されています。 MySQL 5.5.3-m3 では、非常に多くの変更がなされています。 InnoDB Plugin のバージョンは 1.0.6(ベータレベル)。主な変
SELECT TABLE_SCHEMA,TABLE_NAME,ENGINE FROM information_schema.tables where TABLE_SCHEMA = 'information_schema'; ■CHARACTER_SETS | MEMORY | 利用できる文字セットに関する情報 ■COLLATIONS | MEMORY | 各文字セットの照合に関する情報 ■COLLATION_CHARACTER_SET_APPLICABILITY | MEMORY | どの文字セットがどの照合に適用できるかを示します ■COLUMNS | MyISAM | テーブルのカラムに関する情報 ■COLUMN_PRIVILEGES | MEMORY | カラムの権限に関する情報 ■ENGINES | MEMORY | ストレージ エンジンに関する情報 ■EVENTS | MyISA
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く