タグ付けされた質問 「innodb」

InnoDBは、MyVersion用のACID準拠のトランザクションストレージエンジンであり、MultiVersion Concurrency Control(MVCC)を使用します。バージョン5.5.5以降、MySQLのデフォルトのストレージエンジンになっています。

9
偽の外部キー制約が失敗する
次のエラーメッセージが表示されます。 エラー1217(23000)、40行目:親行を削除または更新できません:外部キー制約が失敗します ...テーブルを削除しようとすると: DROP TABLE IF EXISTS `area`; ...このように定義されます: CREATE TABLE `area` ( `area_id` char(3) COLLATE utf8_spanish_ci NOT NULL, `nombre_area` varchar(30) COLLATE utf8_spanish_ci NOT NULL, `descripcion_area` varchar(100) COLLATE utf8_spanish_ci NOT NULL, PRIMARY KEY (`area_id`), UNIQUE KEY `nombre_area_UNIQUE` (`nombre_area`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci; おもしろいのは、外部キーを持つスキーマの他のすべてのテーブルをすでに削除したことareaです。実際には、データベースはareaテーブルを除いて空です。 データベースに他のオブジェクトがない場合、どうすれば子行を持つことができますか?私の知る限り、InnoDBは他のスキーマの外部キーを許可していませんか? (RENAME TABLE area TO something_elseコマンドを実行することもできます:-?)
110 mysql  innodb 

7
ブールフィールドのインデックスを作成することで、パフォーマンスの向上はありますか?
を含むクエリを記述しようとしていますWHERE isok=1。名前が示すように、isokはブールフィールドです(実際にはTINYINT(1) UNSIGNED、必要に応じて0または1に設定されるa )。 このフィールドのインデックスを作成すると、パフォーマンスが向上しますか?エンジン(この場合はInnoDB)は、インデックスのルックアップのパフォーマンスが向上しますか?
102 mysql  indexing  innodb 

9
InnoDBによる全文検索
私は、大量のWebアプリケーションを開発しています。その一部は、ディスカッション投稿のMySQLデータベースであり、スムーズに20M +行に成長する必要があります。 もともとはテーブルに(組み込みの全文検索機能用に)MyISAMを使用することを計画していましたが、1回の書き込み操作でテーブル全体がロックされていると思ってシャッターを切っていました。行レベルのロックは非常に理にかなっています(巨大なテーブルを処理するときのInnoDBの他の速度の利点は言うまでもありません)。したがって、このため、私はInnoDBを使用することをかなり決心しています。 問題は... InnoDBにはフルテキスト検索機能が組み込まれていません。 サードパーティの検索システムを使用する必要がありますか?同様のLucene(C ++) / スフィンクス?データベース忍者に提案やガイダンスはありますか?LinkedInのzoie(Luceneをベースとする)は現時点で最良のオプションのようです...リアルタイム機能を中心に構築されている(これは私のアプリケーションにとって非常に重要です。)私はまだ洞察を得ずにコミットすることを少しためらっています... (参考:フロントエンドにサービスを提供するためにPHPを使用して、ハイメモリリグを備えたEC2に参加します)

10
MySQLでのUUIDパフォーマンス?
MySQLデータベースの主キーとしてUUID値を使用することを検討しています。挿入されるデータは、数十、数百、または数千ものリモートコンピューターから生成され、1秒あたり100〜40,000の挿入速度で挿入され、更新は行われません。 データベース自体は通常、データのカリングを開始する前に約5,000万レコードに達するため、大規模なデータベースではありませんが、小規模でもありません。また、InnoDBで実行することも計画していますが、実行していることに対してより優れたエンジンがあれば、それを変更することもできます。 Javaのタイプ4UUIDを使用する準備ができましたが、テストでは奇妙な動作が見られました。1つは、varchar(36)として格納しているため、binary(16)を使用した方がよいことに気付きましたが、どれだけ良いかはわかりません。 より大きな問題は、5,000万件のレコードがある場合、このランダムデータがインデックスをどれほどひどく台無しにするかということです。たとえば、左端のビットにタイムスタンプが付けられたタイプ1 UUIDを使用した方がよいでしょうか?または、UUIDを完全に破棄して、auto_increment主キーを検討する必要がありますか? MySQLにインデックス/主キーとして格納されている場合のさまざまなタイプのUUIDのパフォーマンスに関する一般的な考え/ヒントを探しています。ありがとう!

3
mysqlテーブルがmyISAMまたはInnoDBエンジンを使用しているかどうかを確認するにはどうすればよいですか?
MySQLでは、特定のデータベースにストレージエンジンを指定する方法はなく、単一のテーブルにのみ指定します。ただし、次の1つのセッションで使用するストレージエンジンを指定できます。 SET storage_engine=InnoDB; したがって、テーブルごとに指定する必要はありません。 実際にすべてのテーブルがInnoDBを使用しているかどうかを確認するにはどうすればよいですか?

7
#1025-'。/ database /#sql-2e0f_1254ba7'の名前を './database/table'に変更するときにエラーが発生しました(errno:150)
そのため、データベース内のテーブルの1つに主キーを追加しようとしています。現在、次のような主キーがあります。 PRIMARY KEY (user_id, round_number) user_idは外部キーです。 私はそれをこれに変更しようとしています: PRIMARY KEY (user_id, round_number, created_at) テーブル構造ビューの主キーアイコンをクリックして、phpmyadminでこれを実行しています。 これは私が得るエラーです: #1025 - Error on rename of './database/#sql-2e0f_1254ba7' to './database/table' (errno: 150) これは、InnoDBテーブルエンジンを備えたMySQLデータベースです。

1
MySQL独自のパフォーマンス
クエリに「明確」を追加すると、クエリ時間が0.015秒から6秒以上に増加します。 外部キーを介してリンクされている複数のテーブルを結合し、そこから個別の列を取得したいと思います。 select distinct table3.idtable3 from table1 join table2 on table1.idtable1 = table2.fkey join table3 on table2.idtable2 = table3.fkey where table1.idtable1 = 1 明確なクエリは6秒かかりますが、これは改善できるようです。 選択あり: 期間:0.015秒/フェッチ:5.532秒(5.760.434行) 説明: id, select_type, table, partitions, type, possible_keys, key, key_len, ref, rows, filtered, Extra 1 SIMPLE table1 index asd asd 137 10 10.00 Using where; …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.