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

MySQLのすべてのバージョン(Microsoft SQL Serverではありません)。質問に関連する場合は、mysql-5.7のようなバージョン固有のタグも追加してください。

8
MySQLクライアントにmylogin.cnfからパスワードを読み取らせるにはどうすればよいですか?
パスワードをインタラクティブに指定する必要なく、mysqlクライアントをmysqlサーバーに接続しようとしています。実行した手順: 1)最初にmylogin.cnfファイルを作成します $ mysql_config_editor set --user=<user> --password --host=<host> Enter password: 2)ファイルが正常に作成されました: $ ls -la .mylogin.cnf -rw-------. 1 urmt urmt 136 Dec 19 11:01 .mylogin.cnf $ mysql_config_editor print --all [client] user = <user> password = ***** host = <host> 3)MySQLクライアントを使用して接続する $ mysql <dbname> ERROR 1045 (28000): Access denied for user '<user>'@'<host>' …

3
エラー-関数 'innodb'はすでに存在します
MyISAMテーブルの一部をINNODBに変換することを検討しています。MySQL 5.6(apt-getが5.5からアップグレードされた)でUbuntu 14.04サーバーを実行し、4コア/ 8スレッドCPUで32G ram。最初に問題がありました... could not open single-table tablespace file .\mysql\innodb_index_stats.ibd after restart of MySQL そして Error: Table "mysql"."innodb_table_stats" not found. Rolandoの投稿されたアドバイスに従いましたが、DBがクラッシュしたり、巨大なerror.logを作成したりすることはありません。 (上記の問題はなくなり、主要なイベントについてのみ説明しています) 何かをINNODBに変換する前に、次のエラーについて心配しています。私が読んだものからFederatedは無視できます。下の2行目(この投稿の件名も)は私に関するものです 2014-05-19 01:50:57 30950 [Note] Plugin 'FEDERATED' is disabled. 2014-05-19 01:50:57 30950 [ERROR] Function 'innodb' already exists 2014-05-19 01:50:57 30950 [Warning] Couldn't load plugin named 'innodb' …
11 mysql  innodb 

2
MySQLでNULL値を持つ列のインデックスを設計する方法は?
4,000万のエントリを持つデータベースがあり、次のWHERE句を使用してクエリを実行したい ... WHERE `POP1` IS NOT NULL && `VT`='ABC' && (`SOURCE`='HOME') && (`alt` RLIKE '^[AaCcGgTt]$') && (`ref` RLIKE '^[AaCcGgTt]$') && (`AA` RLIKE '^[AaCcGgTt]$') && (`ref` = `AA` || `alt` = `AA`) LIMIT 10 ; POP1NULLにすることもできる浮動列です。POP1 IS NOT NULLエントリの約50%を除外する必要があるため、最初にそれを配置しました。他のすべての用語は、数をごくわずかに減らします。 とりわけ、私は最初の列としてのpop1_vt_sourceインデックスvtが使用されている間、使用されていないように見えるインデックスを設計しました。EXPLAIN-出力: | id | select_type | table | type | possible_keys | …
11 mysql  index 

2
メタデータロックを待機しているため、テーブルを削除できません
1つのテーブルを削除しようとしていますが、それがハングアップしています。「SHOW PROCESSLIST」コマンドを見ると、「メタデータのロックを待っています」と表示されています。その特定のテーブルで操作を実行することもできません。誰かがそれを解決する方法を知っていますか?


2
mysqlで外部キーにRESTRICTを使用する方法
のデータベース構造 CREATE TABLE Country ( name varchar(40) NOT NULL, PRIMARY KEY (name) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE City ( name varchar(40) NOT NULL, PRIMARY KEY (name) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE Map ( country varchar(40) NOT NULL, city varchar(100) NOT NULL, PRIMARY KEY (country,city), FOREIGN KEY (country) REFERENCES …

1
MySQLレプリケーションスレーブの再起動
セットアップ後初めて、読み取り専用のMySQLレプリケーションスレーブを再起動する必要があります。 メンテナンスのためにスレーブを停止することに関するこの記事を見つけました(彼はmysqlデーモンの停止について説明しているだけですが)。 MySQLスレーブサーバーを安全に再起動する方法 要約すると、手順は次のとおりです。 ではmysqlクライアント: STOP SLAVE; FLUSH TABLES; OSから: /etc/init.d/mysql stop この時点で再起動し、システムが起動した後: ではmysql、クライアント(mysqlデーモンがブート時に起動するように設定されます): START SLAVE; これは正しく見えますか?他に何かすべきことはありますか?

2
MySQLでのトリガーvsストアドプロシージャのパフォーマンス
ここのDBA.StackExchangeの投稿(レコードのリビジョン番号を維持するためのトリガーのベストプラクティスは何ですか?)は、MySQLのパフォーマンスに関する興味深い質問(少なくとも、私にとって興味深い)を生み出しました。 コンテキストは、更新される行ごとにテーブルにレコードを挿入することです。行が更新される前に、以前の値を保存してから、列の1つ(「バージョン」列)を増分します。 これをトリガー内で実行すると、うまく機能します。MySQLの場合、トリガーは行ごとに行われるため、簡単に解決できます。現在テーブルにあるデータを選択し、それをロギングテーブルに挿入して、新しいデータの「バージョン」列を更新します。 ただし、このロジックをストアドプロシージャに移動することは可能です。その場合、挿入を実行してから、テーブルの「バージョン」列をインクリメントします。全体がベースに設定されます。 それで、この挿入を実行することになると、セットベースのストアドプロシージャアプローチまたはトリガーベースのアプローチを使用する方がパフォーマンスが良くなりますか? この質問はMySQLに関するものです(行ごとのトリガーがあるため)。ただし、他の行ごとのトリガーDBMSにも当てはまります。

2
空のテーブルを削除する方法
私の巨大なデータベース(mysql)からすべての空のテーブルを削除することは可能ですか? 空のテーブルをすべて自動的に削除するsqlコマンドを探しています。 現在、データセットには305のテーブルがあり、そのうちの約30%は古い空のテーブルであり、新しいアプリケーションでは使用されません。 明確にするために; すべてのテーブルはtype = MyISAMです。
11 mysql  myisam 

3
複数のバリアント/属性を持つ製品のスキーマ設計?
MySQLを使用しています。このアイデアは、異なるコンセプトのshopifyに似ているため、ユーザーは複数のタイプのバリアントと属性を持つ独自の製品を追加します。 私が行ったすべての調査から、これは私にとって最も可能性の高い解決策のようであり、次のスキーマに何か問題があるかどうか疑問に思っています。 ありがとうございました Table: products ------------------------------ | ID | ProductName | |----------------------------| | 1 | Leather Wallet Case | | 2 | Jeans | | 3 | Power Bank | Table: products_variants ------------------------------- | ID | ProductId | ParentId | Variant | VariantName | SKU | StockTotal | WholeSalePrice | …

1
MySQLの行サイズエラー
MacbookでMySQLサーバーを実行しています(テスト用)。バージョンはHomebrewの5.6.20です。「行サイズが大きすぎます」というエラーが発生し始めましたが、このテストケースまで減らすことができました。テーブル: mysql> describe test; +-------+----------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+----------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | stuff | longtext | YES | | NULL | | +-------+----------+------+-----+---------+----------------+ テーブルのステータス: mysql> show table status where …
11 mysql  innodb 

5
テーブルを作成できませんが、テーブルが存在しません
私はこれらの手順を使用してテーブルを作成します。テーブルmy_userはすでに存在しますが、データベースから何とか消えてしまいましたmy_db。 mysql> USE my_db; mysql> DROP TABLE my_user; mysql> ERROR 1051 (42S02): Unknown table 'my_user' mysql> CREATE TABLE my_user (id INT AUTO_INCREMENT NOT NULL, username VARCHAR(255), group_id VARCHAR(255) DEFAULT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB; mysql> ERROR 1005 (HY000): Can't create table 'my_db.my_user' (errno: …
11 mysql  innodb 

3
LIMITを使用するとパフォーマンスが向上しますか?
以下について理解したい。 合計と順序付けによるグループと5つのテーブルの結合を例に挙げると、複雑なクエリがあるとします。 余談せるなど、クエリ自体例えばインデックスに任意の最適化を 使用して、任意の大幅なパフォーマンス上の利点はありますかLIMIT?LIMITを適用する前にすべてのクエリ(および結果)を処理する必要があると思います。そのため、LIMITを使用して結果のサブセットを取得すると、大幅に改善されますか?

3
UNIONは遅いですが、両方のクエリは別々に高速です
ダンノ、これについて他に何をすべきか。開始列と停止列を持つ1つのテーブルがあり、開始と停止の両方で結合した結果を返したいと思います。また、2つのテーブルを明確に区別したいと考えています。これで、両方のクエリが別々に高速に実行されます。 SELECT UNIX_TIMESTAMP(CONVERT_TZ(start_dev, '+00:00', GetCarrierTimezone(a0.carrier_id))) AS alertStart, NULL AS alertStop, c0.name AS carrier_name, carrier_image, l0.Latitude, l0.Longitude FROM carriers AS c0 INNER JOIN start_stop AS a0 ON a0.carrier_id = c0.id INNER JOIN pcoarg AS l0 ON a0.startLogId = l0.id WHERE FIND_IN_SET(a0.carrier_id, '89467,1,64578,222625,45013') > 0 AND start_dev > '2013-03-11 11:46:48' AND start_dev …
11 mysql 

3
1つのクエリで複数のカウントを行う方法は?
次のようなクエリでレコードを数えます SELECT COUNT(col1) FROM table1 WHERE col1 LIKE '%something%' SELECT COUNT(col1) FROM table1 WHERE col1 LIKE '%another%' SELECT COUNT(col1) FROM table1 WHERE col1 LIKE '%word%' カウントごとに、mysqlはテーブル全体をウォークスルーする必要があり、これは長いテーブルと多数のクエリがある場合の大きな問題です。 1つのクエリですべてのカウントを行う方法はあるのでしょうか。この場合、mysqlが各行をウォークスルーすると、すべてのカウントが処理されるため、テーブル全体を何度もスキャンする必要がありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.