タグ

5.6に関するslay-tのブックマーク (38)

  • 選定した技術が1年で死んだ話 | そど

    今年の夏頃から、特にサービスとして出すわけではなく、社内で使っているシステムのリプレースを行う事になりました。主な目的はレガシーすぎる設計をある低度モダンにする事、そして他のシステムと連携出来るようにする事、です。 対象のシステム 見積書や請求書などを管理・発行している。機能はそれなりに多いがUI操作はFormベース、テーブルタグで諸情報を表示するシンプルな物。ノンフレームワークで1画面1PHPファイルな古き良き時代のコード。おそらく10年ぐらい?稼働している。当初はPHP 5.1、PostgreSQL 8.x系だったが、現在はPHP 5.6とPostgreSQL 9.6で稼働しています。 その他の社内システム かつてはノンフレームワークだったり、太古のバージョンのCakePHPだったり、PHPが4系だったりしたが、概ねCodeIgniter 3系最新版 + PHP 5.6~7.1 + P

  • MySQLのFLOAT型を使う理由が見つからない件 - hnwの日記

    MySQLのデータ型としてFLOAT型という型があるのですが、これを採用するのは混乱の元ではないか?と感じたので、その詳細を紹介します。 そもそもこの話のきっかけは「MySQLで6桁までの小数点を丸めずに扱うならFLOAT型を使うべき理由」という記事が目に止まったことです。それなりに人気を集めている記事のようですが、私の読んだ限りではFLOAT型を使うだけの根拠が文中から読み取れず、さらに類似する一次情報や英語記事が全く見つからなかったので、真偽が怪しい情報だと感じました。 その後、MySQL上で実験したりCソースコードを読んでみたりした結果、私の得た結論は真逆のものになりました。MySQL警察の方や浮動小数点数警察の方、追試や反論など頂けると助かります。 MySQLのFLOAT型とは MySQLのFLOAT型は原則としてIEEE754浮動小数点数単精度型(32bit)で実現されます*1。

    MySQLのFLOAT型を使う理由が見つからない件 - hnwの日記
  • MySQL InnoDBの領域管理 - Qiita

    武蔵野Advent Calendar 2017の20日目の記事です。品川から参加しています。 今日はMySQL InnoDBの領域管理について勉強し、いくつか動作例を見ながらInnoDBに対する理解を深めていきたいと思います。アプリケーション開発者やデータベース管理者の方にとって明日からすぐに使えるノウハウとまではいきませんが、いつか何かの役に立てば幸いです。 まとめ InnoDBにはテーブルスペース、セグメント、エクステント、ページというデータの管理単位があるよ エクステント単位で空き領域が管理されているよ。だけどそれを知ったところであまり役には立たないよ 昇順INSERTが得意でランダムINSERTが苦手なのはよく知られているけれど、実は降順INSERTが得意だよ テーブルスペース、セグメント、エクステント、ページ InnoDBのデータが格納されるファイルのことをテーブルスペースと呼び

    MySQL InnoDBの領域管理 - Qiita
  • golangを使って開発したWebAPIを1年半運用して改善してきたことー月間20億PVのマンガサービス開発の裏側 | Nagisaのすゝめ

    2017年10月2日 golangを使って開発したWebAPIを1年半運用して改善してきたことー月間20億PVのマンガサービス開発の裏側 はじめに 初めまして、サーバーサイドエンジニアの曽根田です。 0から立ち上げ3年で月間20億PV達成!マンガZEROの開発を牽引するエンジニアチーム での紹介にもあるように、弊社では複数のマンガアプリの開発が並行して進められています。 その中で今回はマンガZEROの成長過程でぶつかり、 乗り越えてきた問題をサーバーサイド視点で紹介していきたいと思います。 乗り越えてきた問題 最初はPHP5.6+Phalconというマイクロフレームワークでプロダクトを運用していました。 マンガZEROメジャーバージョンのアップデートの際に、golangを採用しました。 理由は以下の2点です。 バイナリ一つで動作する(外部依存しない) 軽量でハイパフォーマンス 弊社には積極

    golangを使って開発したWebAPIを1年半運用して改善してきたことー月間20億PVのマンガサービス開発の裏側 | Nagisaのすゝめ
  • PHPの連想配列は常にin_arrayより速いのか - hnwの日記

    プログラムを書いていると、入力値が辞書に含まれているかを調べたいようなことがあります。たとえば、ユーザーに都道府県名を入力させて、それが正しい都道府県名であるかどうかを調べたい、というようなことがあるかもしれません。 このような内容をPHPで書く際、キーに都道府県名を持つような連想配列を作る習慣がある人は多いはずです。これは典型的な連想配列の使い方といえるでしょう。 <?php $prefs = array( "北海道" => true, "青森" => true, // ... "沖縄" => true, ); if (isset($prefs[$input])) { // 都道府県名が正しい時の処理 } 一方で、in_array関数を使うやり方も考えられます。 <?php $prefs = array( "北海道", "青森", // ... "沖縄", ); if (in_array

    PHPの連想配列は常にin_arrayより速いのか - hnwの日記
  • MySQL with InnoDB のインデックスの基礎知識とありがちな間違い - クックパッド開発者ブログ

    こんにちは、サービス開発部の荒引 (@a_bicky) です。 突然ですが、RDBMS の既存のテーブルを見てみたら「何でこんなにインデックスだらけなの?」みたいな経験はありませんか?不要なインデックスは容量を圧迫したり、挿入が遅くなったりと良いことがありません。 そんなわけで、今回はレコードを検索するために必要なインデックスの基礎知識と、よく見かける不適切なインデックスについて解説します。クックパッドでは Rails のデータベースとして主に MySQL 5.6、MySQL のストレージエンジンとして主に InnoDB を使っているので、MySQL 5.6 の InnoDB について解説します。 InnoDB のインデックスに関する基礎知識 インデックスの構造 (B+ 木) InnoDB では B+ 木が使われています。B+ 木は次のような特徴を持った木構造です。 次数を b とすると、

    MySQL with InnoDB のインデックスの基礎知識とありがちな間違い - クックパッド開発者ブログ
  • MySQLのfilesortは何ソートで行われているのか - $shibayu36->blog;

    最近、CourseraのArgorithms, Part1という講義を受けている。そこでソートの講義を受けて、そういえばMySQLのORDER BYでfilesortになったときってどのソートが使われているのだろうと気になってきたので調べてみた。 調べてみると非常に難解で、結局いまいち分からなかったが、今の段階の調べた内容をひとまず書いておく。MySQLのコードを読んだのも初めてで、しかもちゃんと読み解くことができなかったので、情報が間違っている可能性も非常に高い。間違ってたら指摘してもらえるとうれしいです。 調査結果 最初に調査結果を書いておく。たぶんこれは非常に単純化したもので、詳しく見るともっといろいろチューニングされてそう。 sort_buffer_size以内のメモリ量でソートが可能な場合、メモリ内でのみソートされる ソートにsort_buffer_size以上のメモリが必要な場

    MySQLのfilesortは何ソートで行われているのか - $shibayu36->blog;
  • 【Unity】Unity5.6で綺麗な画面を作るための5つの手順 - おもちゃラボ

    Unityでキレイな画作りをしたいときの、基的な設定手順を5つに分けて紹介します。Cinematic Filterやカラースペースの変更は処理が重いので、スマートフォン向けではないかもしれません。 完成までのステップは次のようになります。 手順1 オブジェクトを配置する 手順2 カラースペースをリニアにする 手順3 スカイボックスを設定する 手順4 アンビエントオクルージョンを表現する 手順5 Cinematic Image Effectを使う 手順1 オブジェクトを配置する シーンビューにオブジェクトを配置してから、マテリアルを作成&設定します。マテリアルの設定は、基的にMetalicとSmoothnessで調整します。 このままでは、「ただ配置した感」が拭えませんね・・・ 上の金色とピンクゴールドの玉の設定は次のようにしてみました。 金属っぽい見た目にしたい場合は次のページが参考に

    【Unity】Unity5.6で綺麗な画面を作るための5つの手順 - おもちゃラボ
  • AuroraのALTER TABLE性能検証とRDS比較 | 外道父の匠

    よく、Auroraを採用しました、安定しています、移行してよかったです!とか見かけますけど、 なんで快適なのかをちゃんとわかって使ってんのかこの野郎ッp(`・ω・´メ)q 俺も全然わかってねぇッ( ・`ω・´) ということで、今回もいい感じに飽きてきたAuroraです。Aurora。少々気になっていた、ALTER TABLE周りについて興味深い数値が取れたので、その共有で御座います候。 MySQL5.6互換 AuroraMySQL5.6互換というけれど・・・ Q:「MySQL と互換性がある」とはどういう意味ですか? これは、現在お客様が MySQL データベースで使用しているほとんどのコード、アプリケーション、ドライバー、ツールをほとんど、またはまったく変更を加えなくても Aurora で使用できることを意味します。Amazon Aurora データベースエンジンは InnoDB スト

    AuroraのALTER TABLE性能検証とRDS比較 | 外道父の匠
  • MySQLの限界に挑戦する

    6. 6 できたクエリ • select "a" union all select "b" union all select "b" union all select "b" union all select "b" union all select "b" union all select "b" union all select "b" union all select "b" union all select "b" union all select "b" union all select "b" union all select "b" union all select "b" union all select "b" union all select "b" union all select "b" union all select "b" union all select "

    MySQLの限界に挑戦する
  • Laravel + MySQL5.7 で日本語全文検索をする方法とちょっとした注意点 - Qiita

    皆さんこんにちは ちょっとしたアプリケーションを作っていると、キーワードやフリーワードを利用した検索が必要になったりします。 でも、そのときにLIKE検索なんてやっていると、全データを走査する可能性があり、あまり気分の良いものではありません。 そこで、適当な全文検索エンジンを使ってインデックスを張っておきたいなと思うわけですが...MySQLの場合、5.6まではデフォルトで(InnoDBに)日語全文検索エンジンを入れていなかったりと、少々ハードルが高かったのです。 今回はMySQL5.7でデフォルトでNgramが搭載されているようなので、Laravelで全文検索を実装してみましょう。 例によって今回もLaradockを使用して即席環境を構築しています。 MySQLに全文検索が来た! 大昔のtritton, ちょい昔のgroongaのように、外部のプラグインを導入することなく、裸のMySQ

    Laravel + MySQL5.7 で日本語全文検索をする方法とちょっとした注意点 - Qiita
  • PDOに複文実行を禁止するオプションが追加されていた

    エグゼクティブサマリ PHP 5.5.21、PHP 5.6.5 以降、PHPにPDO::MYSQL_ATTR_MULTI_STATEMENTSというオプションが追加され、PDO+MySQLの組み合わせで、SQLの複文を禁止できるようになった。この設定はSQLインジェクションの緩和策として有効である。 はじめに 2013年12月に公開した PHP+PDO+MySQLの組み合わせではSQLインジェクション攻撃で複文呼び出しが可能 にて、PDOとMySQLの組み合わせで、SQLインジェクションの文脈で複文呼び出しが可能であることを報告していましたが、その後のPHPのバージョンアップで、複文実行を禁止するオプションが追加されていましたので報告します。 対象のバージョンは以下の通りです。 PHP 5.5.21 以降 PHP 5.6.5 以降 全ての PHP 7.0、7.1 前述の記事を書いた後、3大

  • リリース直前! Laravel 5.3 の変更点(アップグレード編) - Innovator Japan Engineers’ Blog

    こんにちは。エンジニアの @localdisk です。今回はリリースを間近に控えた Laravel 5.3 に関する変更点の中から特にアップグレードする際に注意しなければならないところを取り上げていきます。 このエントリの内容は 2016/08/01 時点での内容です。今回説明した内容は変更される可能性があります。 まずはインストール Laravel 5.3 は PHP 5.6.4 以上 ディレクトリ構造の変更 route ファイルの変更 認証用コントローラの変更 App\Providers\BroadcastServiceProvider LaravelVue.js Laravel-Elixir が 5 → 6 へ アップグレード時の注意点 MySQL の strict モードのデフォルト値変更 HHVM のサポート廃止 次回は まずはインストール さて、まずは動かしてみましょう。

    リリース直前! Laravel 5.3 の変更点(アップグレード編) - Innovator Japan Engineers’ Blog
  • 数十台規模のPHP 5.3プロジェクトをダウンタイムゼロでPHP 5.6化した時のまとめ | GMOメディア エンジニアブログ

    新年明けましておめでとうございます。GMOメディアの流しエンジニア、山田コーダーです。さて、ようやく弊社でもPHP 5.3、5.4系のプロジェクトの5.6化が一段落してまいりました。 PHP 5.6のリリースが2014年ですので今更感がありますが、「レガシーなPHPプロジェクトのバージョンアップに困っている」「使いたいライブラリーが5.3に対応してないからバックポートした」などという悲痛な声を目にしたこともあり、これからPHPのバージョンアップをされる方たちへのささやかな参考資料になればと思い、書かせていただきました。 さて、まずは題に入る前に結果からお見せしようと思います。以下はNew Relic(アプリケーションのパフォーマンス監視サービス)のレスポンスタイムのグラフです。なおこのプロジェクトでは、ブラウザー表示用HTMLを出力するサーバー(Web 約10台)と、スマートフォンアプリ

  • MySQLでINSERTのデッドロックに嵌る人を1人でも減らすために - ichirin2501's diary

    この記事ははてなデベロッパーアドベントカレンダー2015の12月24日の記事です。 昨日は id:stefafafan さんのエンジニア英語でした。 こんにちは、こんばんは。 クリスマス・イヴですね、皆さんはどのような一日を過ごされる(た)のでしょうか。 僕は一人です。 改めまして、先日初めての合コンを経験/失敗して二度と行かないと誓った はてなの id:ichirin2501 です。今回は小ネタとしてMySQL(InnoDB)のBULK INSERTにおけるデッドロックの話をしようと思います。ただ、外部キー制約が絡むと複雑になるので今回は触れません。それについてはこちらを参照ください。 あ、タイトルはオマージュです*1。 Topic 検証環境 INSERTのデッドロック 避けられないケース もしくはロックする リトライ処理に注意 初期データ Duplicateの場合 Deadlockの

    MySQLでINSERTのデッドロックに嵌る人を1人でも減らすために - ichirin2501's diary
  • 「PHP 7」正式版が登場。PHPにとって10年ぶりのメジャーバージョンアップ。実行速度は旧バージョンの2倍以上

    PHP 7」正式版が登場。PHPにとって10年ぶりのメジャーバージョンアップ。実行速度は旧バージョンの2倍以上 PHPの公式サイトでは、PHP 5.6.xからPHP 7.0へ移行するためのガイド「Migrating from PHP 5.6.x to PHP 7.0.x」も公開されています。 開発者であるRasmus Lerdorf氏は10月に来日し、「PHPカンファレンス2015」で講演。PHP 7ではPHP 5との互換性を維持しつつ、2倍以上の性能向上とメモリ使用量の低減など、大きな改善が実現されことを示していました。「実際に世界中で使われているPHPアプリケーションの性能が2倍になるのが主な特長です」(Rasmus Lerdorf氏。10月に開催された「PHPカンファレンス2015」にて)。 さらにLerdorf氏は次のようにPHPにはさらに高速化の余地があると説明しています。 「

    「PHP 7」正式版が登場。PHPにとって10年ぶりのメジャーバージョンアップ。実行速度は旧バージョンの2倍以上
  • 社畜が夜なべをしてエロのキュレーションサイトを作ってみた。

  • ほぼ全てのインジェクション攻撃を無効化/防止する入力バリデーション 〜 ただし出力対策も必須です 〜

    (Last Updated On: 2019年2月18日)入力バリデーションはセキュリティ対策として最も重要なセキュリティ対策です。なぜセキュリティ対策であるのか?を理解していない方も見かけますが「ほぼ全てのインジェクション攻撃を無効化/防止する入力バリデーション」の効果と拡張方法を見れば解るのではないでしょうか? ソフトウェア開発者が知っておくべきセキュリティの定義/標準/ガイドで紹介しているセキュリティガイドラインでは入力バリデーションが最も重要なセキュリティ対策であるとしています。 厳格な入力バリデーションを行うと、開発者が意識しなくても、非常に多くの脆弱性を利用した攻撃を防止できます。今回は比較的緩い入力バリデーション関数でも、ほとんどのインジェクション攻撃を防止できることを紹介します。 重要:セキュア/防御的プログラミングでは入力と出力のセキュリティ対策は”独立”した対策です。ど

    ほぼ全てのインジェクション攻撃を無効化/防止する入力バリデーション 〜 ただし出力対策も必須です 〜
  • MySQL5.6、5.7性能比較

    2. 誰 ❖ いとう ひろゆき ❖ サーバ運用/保守が仕事 ❖ ネットワークからOS、ミドルウェアまでアプリケーシ ョン以外はなんでも面倒を見ないといけない(程度の差 はあります) ❖ MySQL好き。酒好き。 3. 比較内容 ❖ 秒間接続数 ❖ sysbenchのpoint selectとoltp (全部メモリに載るデータ 量) ❖ tpcc-mysql (i/oバウンド warehouse 1000) ❖ tpcc-mysql以外は3回実行した平均値 ❖ 更新が行われるベンチマークはバイナリログ有効 5. ❖ ベンチマークサーバ ❖ HP DL360p G8v2 ❖ CPU Intel Xeon E5-2643 v2 @ 3.50GHz (1CPU = 6Core) ❖ MEM 8GB x 4 = 32GB (DDR3 1866 MHz) ❖ ioDrive2 785GB ❖ Driv

    MySQL5.6、5.7性能比較
  • PHPのモダンな開発環境を紹介する - Qiita

    phpbrew install時にインストールしわすれたライブラリを追加でインストールするときも phpbrew ext install でインストールできる。 Composer RubyのgemコマンドとBundlerに相当するものだ。rubygems.orgやPyPIに相当するのはPackagistだ。 PHPのモダンなライブラリとかフレームワークと呼ばれてるものはだいたいComposer対応してるので、現在では避けて通ることができない。 Getting Startedに従ってインストールしてほしい。どうやらWindowsでも動くようだ。 PHPのライブラリ管理リポジトリとしてPEARとかPear2とかPyrusの名前を記憶してる方も居るかもしれないが、残念ながら全て死に体だ。 忘れてあげてくださいね。 既存のプロジェクトにComposerを導入する 拙作のzonuexe/http-a

    PHPのモダンな開発環境を紹介する - Qiita